2016-10-04 188 views
0

在Unity3D中,邏輯規定,除非在視野中,否則不會呈現對象。這顯然是達到優化目的的途徑。然而,它仍然呈現由於被遮擋而不能被玩家看見的網格。我想解決這個問題,並想知道是否已經有一種方法可以這樣做,或者如果我必須自己做。如何防止在Unity3D中呈現看不見的三角形?

下面是一張照片來幫助說明我的觀點。 enter image description here

到目前爲止,我唯一真正的想法是使用剔除,但仍然會在一個不一定可見的範圍內。

https://docs.unity3d.com/ScriptReference/Camera-layerCullDistances.html

我想基本上就是我需要知道的是如何做遮擋剔除一個場景開始,因爲發生場景,這不是預製後。

回答

0

任何人誰是有興趣的,我問了團結社區

回答Bunny83·5小時前

不,那是不可能的。至少不是Unity使用的遮擋剔除系統 。從 可以看到哪些部分的計算部分是相當複雜的,並且必須在 編輯器中進行預先計算。所以它不適用於程序生成的關卡。

如果您需要類似的東西,您必須推出自己的解決方案。 僅僅幾個星期(或一個月?)之前,我實施了一個VisPortals解決方案 類似於Doom3使用的解決方案(基本上大多數ID Tech引擎 是如何工作的)。這更像是一個概念證明,而不是一個隨時可用的解決方案。

通常我上傳一個webplayer演示到我的保管箱,但是我只是 意識到Dropbox最終阻止直接查看我的公共文件夾的HTML頁 。他們現在強制下載頁面,其中 打破了一切。所以如果你想嘗試它,你必須下載 項目。

當然vis門戶在所有情況下都不起作用。他們是完美的 的封閉環境,可以很好地分成獨立的區域。 當然,這個分裂成區域和創造目前 是手工完成。所以你需要自己自動化這個 。

要小心靜態配料,它可能會破壞系統,因爲每個 區域必須分開,因此可以單獨啓用/禁用。