我目前正在使用带有以下代码的三角形渲染场景:
glBindVertexArrayOES(_mVertexArrayObjectTriangles);
glBindBuffer(GL_ARRAY_BUFFER, _mVertexPositionNormalTriangles);
glDrawElements(GL_TRIANGLES, _mCRBuffer->GetIndexTriangleData()->size(), GL_UNSIGNED_INT, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArrayOES(0);
_mVertexArrayObjectTriangles是我的顶点数组对象,包含通过三角形呈现的元素
_mVertexPositionNormalTriangles是我的顶点和顶点法线数组
_mCRBuffer-> GetIndexTriangleData()是我的顶点数组索引数组。这是一个简单的整数数组,它对每个三角形进行编码(a,b,c,a,b,d将编码两个三角形abc和abd)。
一切正常,但我想使用三角扇而不是三角形来渲染我的图元。如何使用类似
之类的东西设置三角形扇形阵列(即多于一个)glDrawElements(GL_TRIANGLE_FAN, ....
如何设置我的索引数组来索引一组三角形扇形以进行渲染(而不是三角形)。顶点本身不需要改变,只需使用三角形扇形而不是三角形来渲染它们。
我可以找到使用三角形条带(here)的好例子,包括如何设置索引数组,但三角形粉丝没有。
答案 0 :(得分:1)
从条带更换为风扇非常重要,因为您需要相应地设置数据。你必须有一个中心顶点,所有其他三角形都从这个顶点发出
如果您选择这样做,您只需要以图中所示的方式对顶点进行排序,并确保在具有公共顶点的顶点块中进行顶点。