2010-06-12 43 views
4

我在Unity3D中工作,但我的問題是3D網格。我希望這裏有人能幫助或指引我朝着正確的方向前進。8球形球體的3D球體地形。網格的邊緣很明顯,我不確定爲什麼

我有2個版本的代碼,http://www.pasteit4me.com/695002(舊)和http://www.pasteit4me.com/690003(新)。舊代碼創建一個單一的網格球體並在其上創建一個地形。新代碼製作一個8網格球體並在其上創建一個地形。

在新版本中,網格的邊緣很明顯,我不知道爲什麼。看起來邊緣調整得並不多,幾乎是他們應該達到的2-3倍。舊代碼中的GenerateB()和新代碼中的Generate()會創建球體。 MakeTerrain()都創建地形。

如果我不運行MakeTerrain()函數,新的球體看起來像一個堅實的網格。我不知道從哪裏開始尋找新代碼中的MakeTerrain()函數來解決問題: -/

任何想法?

問題的圖像在http://img28.imageshack.us/img28/3784/screenshot20100611at850.png

+3

錯誤的正常計算。最有可能的默認球體不完全是一個真正的固體對象,並從幾個段創建不相互連接。即使用接縫連接到邊的面不共享相同的頂點 - 只有具有相似座標的頂點副本。 – SigTerm 2010-06-12 09:03:36

+2

這是正確的,他們是8個獨立的網格,當對齊看起來像一個堅實的球體。 8個網格可以單獨移動。 您認爲MakeTerrain函數的問題是正常計算?那麼會導致8個單獨網格的邊緣比其他邊緣更加明顯地升高或降低? – Justin808 2010-06-12 17:49:02

+0

我只是根據圖像進行猜測,但它看起來像地形總是與接縫處基礎網格的高度相同,就好像地形限制在沿着接縫的網格上方有0高度一樣。 – cape1232 2010-07-19 02:16:00

回答

3

沿着邊緣的所有線段都沒有相同的法線。您必須考慮接縫兩側的三角形來計算法線。如果您只是單獨查看每個細分,則無法做到這一點。