1

我目前正在使用带有以下代码的三角形渲染场景:

        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, ....

如何设置我的索引数组来索引一组三角形风扇以进行渲染(而不是三角形)。顶点本身不需要改变,只是使用三角形扇而不是三角形来渲染它们的索引。

我可以找到使用三角形条带的好例子(这里),包括如何设置索引数组,但在三角形风扇上没有。

4

1 回答 1

1

从条带更改为风扇并非易事,因为需要相应地设置您的数据。您必须有一个中心顶点,所有其他三角形都从该顶点发出

在此处输入图像描述

如果您选择这样做,您只需按照图中所示的方式对顶点进行排序,并确保您在具有公共顶点的顶点块中进行排序。

于 2013-04-14T01:48:56.167 回答