我有一個三角形網格,我試圖計算法線,所以我可以在繪製網格時應用它們。我使用即時模式(當我有時間瞭解它們的工作原理時,可能會更改爲頂點數組),並使用GL_TRIANGLE_STRIP繪製網格。計算和應用法線到三角形網格
我在計算頂點法線時遇到了麻煩。更確切地說,決定在計算中使用哪些相鄰頂點,然後決定何時設置這些法線。考慮到這一點:
1_2
|/| Supposedly a square where the numbers represent the vertex number in a
3 4 triangle strip.
我知道你必須計算屬於一個平面的2個向量的叉積爲了得到平面正常。所以在這個例子中,頂三角的正常值可以通過(2-1)x(3-1)來計算,第二個通過做(2-4)x(3-4)來計算。那麼如何在立即模式下繪製三角形條時應用法線?
我在做的事情是設置vtx 1設置第一個正常,第二個設置vtx 4,第三個設置vtx 5等等。然而,這會產生問題,因爲顯然通過使用不同的法線爲三角形的每個頂點(當他們應該都是相同的)。例如,三角形| 2,3,4 |將僅具有正確法線的頂點4(因爲對於頂點2和3,法線將是第一個三角形中的一個)。
那麼應該怎麼做?有沒有辦法,還是我需要更改爲GL_TRIANGLES
? (我現在不想立即停止使用即時模式,因爲我沒有時間)。
這對插值頂點着色是正確的。如果你想要有平坦的陰影,你需要複製共享頂點,以便每個面的每個點集具有獨特的法線而不是平均值。 – 2010-11-30 19:18:42