【发布时间】:2013-03-27 09:19:27
【问题描述】:
在 OpenGL ES 中,是否可以使用退化三角形(面积为 0 的三角形)来分隔顶点数组中的 TRIANGLE_FAN 对象?还是只有 TRIANGLE_STRIP 才能做到这一点?
如果答案是否定的,将多个 TRIANGLE_FAN 顶点数组绘制调用批处理为一个的最佳方法是什么?
【问题讨论】:
标签: android performance opengl-es
在 OpenGL ES 中,是否可以使用退化三角形(面积为 0 的三角形)来分隔顶点数组中的 TRIANGLE_FAN 对象?还是只有 TRIANGLE_STRIP 才能做到这一点?
如果答案是否定的,将多个 TRIANGLE_FAN 顶点数组绘制调用批处理为一个的最佳方法是什么?
【问题讨论】:
标签: android performance opengl-es
你是对的,答案是否定的,因为所有三角形扇形三角形共享相同的顶点。
如果您想批量处理多个三角形风扇,最好使用Vertex Buffer Objects 或带有GL_TRIANGLES 模式的VBO。会有一个小的索引缓冲区开销,但它会提供更好的灵活性。
【讨论】:
您还可以将表面三角测量为条带而不是扇形。它将允许您使用退化三角形并将您的绘制调用批处理为一个。
如果您的表面是 n 边形,这很容易。只需更改顶点创建的顺序。与其绕过中心,不如选择一个顶点开始并通过在两侧迭代来生成其他顶点。这是Hexagon 的示例。左图使用三角条,中图使用扇形。
【讨论】: