2013-05-02 90 views
4

我已經合法地完成了每一個可能的研究,並且只是簡單地計算每個相鄰面的表面法線。 計算曲面法線很容易,但是如何找到每個頂點的相鄰面呢?你使用什麼樣的存儲?我錯過了什麼嗎?爲什麼每個人都這麼容易。計算網格的頂點法線

任何指導將不勝感激。

回答

7

但你怎麼找到每個頂點的相鄰面?

另外想一想:遍歷整個面並添加到頂點的法線。一旦處理完所有面,將頂點法線標準化爲單位長度。我描述它在這裏詳細

Calculating normals in a triangle mesh

如果你真的想找到一個頂點的面孔,天真的方法是進行對臉的名單頂點(線性)搜索。一個更好的方法是維護一張輔助名單。

+1

該死的,很有道理,非常感謝。我試圖建立一個鄰接列表,但不知道從哪裏開始,因爲我無法想象如何存儲哪些數據以及哪些數據在何處如何存儲。你的第一個解決方案使得更多的意義感謝。我還發現了一個更簡單的解決方案,因爲我試圖遮蔽一個球體,我發現法線只是標準化的頂點減去球體的中心......這可以節省數小時小時。再次感謝 – 2013-05-02 15:05:01

+1

@JimmyDean:如果你在StackOverflow中搜索「datenwolf球體渲染」,你會發現我的答案,它也描述了球體表麪點與其法線之間的關係。 – datenwolf 2013-05-02 15:07:26