我正在使用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