我被要求更改Maya的apiMeshShape插件中的网格数据结构。所以现在我想用opengl绘制一个以Vertex-vertex结构表示的3D网格(正如你在en.wikipedia.org/wiki/Polygon_mesh中看到的那样)。
1)首先,我不知道如何表示Vertex-vertex网格。我想知道数据结构是否正常?
MPointArray vertices; //the position of all the vertices
MIntArray vertices_connects_counts; //how many other vertices each vertex connect with
MIntArray vertices_connects; //the index array storing each the vertices' index connected with all the vertices
以http://en.wikipedia.org/wiki/Polygon_mesh中的多维数据集示例为例。
vertices_connects_counts = {5,5,5,5,5,5,5,5,4,4};
vertices_connects = {1,5,4,3,9,
2,6,5,0,9,
3,7,6,1,9,
2,6,7,4,9,
5,0,3,7,8,
6,1,0,4,8,
7,2,1,5,8,
4,3,2,6,8,
5,6,7,8,
0,1,2,3 };
2)其次,如果上面的数据结构是正确的,我想知道如何使用openGL绘制网格?我应该将哪个参数传递给glBegin()?
答案 0 :(得分:1)
1)这是一个满足您需求的功能数据结构。
2)请允许我引用您链接的维基百科文章:
但由于面部和边缘信息是隐含的,因此未广泛使用。因此,有必要遍历数据以生成用于渲染的面部列表。
这就是你必须要做的。如果你坚持保留这个数据结构(我不会),那么你将不得不走连接图并构建一个顶点面列表。然后你将把数据发送到OpenGL。