我正在使用OpenGl ES可視化具有多於3個頂點的多邊形的網格。我想使用下面的循環將這些多邊形轉換爲三角形。在循環中,我創建了polygonVertexSize-2
個三角形,只需填充一個OpenGL索引數組,該數組引用了不同順序和時間的相同頂點。多邊形到三角形轉換效果網格的可見性
for(int j=0;j<polygonVertexSize-2;j++) //number of triangles
{
//GetPolygonVertex returns the index of a polygon Vertex
indices[indp+0]=Polygon->GetPolygonVertex(0);
indices[indp+1]=Polygon->GetPolygonVertex(1+j);
indices[indp+2]=Polygon->GetPolygonVertex(2+j);
indp+=3;
}
問題的這種轉換是,除非我申請glDisable(GL_CULL_FACE)網眼的某些部分是不可見的。這可能意味着我的三角測量會導致曲面法線錯誤。另外要注意的是,我使用不同三角形中同一頂點的法線來平均頂點的法線。
我該如何解決這個問題?禁用選擇來解決這個問題是不是一個好主意? 這裏有與屠宰和無
在渲染曲面中沒有法線,您可以簡單地檢查您的多邊形是否凸出使用gift wrapping algorithm或者只是穿過頂點並計算dot products。頂點有。表面上的法線是從頂點法線插入的。所以它不應該改變。你可以附加截圖 - 啓用和禁用「GL_CULL_FACE」嗎?你確定你的多邊形是凸的嗎?否則你的三角剖分可能是錯的 –
我加了結果,現在我開始考慮是否真的有一個凸多邊形。有沒有一種方法來調查這個編程?從視覺上看,特別是在小部件中看起來有點難。 – happycoder