在我的Unity項目中,我有一個動態網格系統,需要大量優化。目前我正在尋找一種算法,通過在運行時刪除重複的頂點來優化網格(網格被組合成一個巨大的網格)。去除佔據相同空間的重複面很容易,因爲如果它們在閾值內共享相同的空間(因爲它們不會顯示),它們都可以安全地移除。在Unity中運行時刪除重複頂點
我對重複頂點有點麻煩,因爲它們需要以某種方式去除,或者網格完全搞砸了。在我第一次嘗試它之後,我得到了包含頂點的Vector3
對象的數組,並且我能夠在一定程度上操縱它。看起來,刪除只是它的一半,因爲在查看更多網狀拓撲之後,似乎我需要在刪除另一個之後進行更多的合併。
這是我基本卡住的部分。看起來,我認爲這會很簡單。獲取所有需要移除的頂點的三角形,並將三角形重新分配給停留的頂點。但在實踐中並不那麼容易。
首先,有沒有更簡單的方法?我很驚訝Unity沒有合併頂點腳本,或者至少是一個例子。其次,有沒有更好的方法,以及如何?我遇到了空間哈希,然而,我仍然停留在我以某種方式合併頂點的部分。第三,合併實際的頂點。我應該如何以最有效的方式解決這個問題?
Unity 4之後,在Droid和iOS發佈設置中,他們確實有一個名爲「優化網格」的通用複選框。我不知道它是否會優化到你上面談論的程度。您是在優化移動平臺的頂點以增加FPS,還是針對Web項目/獨立?只是好奇.. – ApolloSoftware 2013-03-25 21:16:59
@AmitApollo該項目是爲桌面,它被用來在運行時構造網格。基本上是關卡編輯器,如果你願意,但它主要由基於網格的元素組成。我將這些網格組合起來,以便移除面(這比頂點要容易得多),並且頂點會帶來相當大的性能增益。 – ContingencyCoder 2013-03-25 21:20:48
我不明白你是如何得到重複的頂點。你能解釋一下嗎? – 2013-03-25 21:50:31