省略缓冲区中的顶点列表

时间:2012-08-27 13:02:19

标签: opengl-es opengl-es-2.0

我有一个缓冲区,其中包含我用于glDrawArrays的顶点信息。缓冲区中的三角形作为精灵围绕屏幕间隔开。我想以某种方式省略绘制其中一些项目,而无需更新整个缓冲区。

有没有我可以修改顶点,以便在遇到顶点时不会绘制任何内容?我不希望完全删除它,因为这涉及再次更新整个缓冲区。

我的目标是一些只支持OpenGL ES 2.0的设备。

2 个答案:

答案 0 :(得分:2)

您可以使用glDrawElements并提供索引缓冲区。

答案 1 :(得分:1)

glDrawArrays包含offsetcount个参数。您可以使用这些参数仅绘制缓冲区中可见的元素。这导致对单个缓冲区的多个glDrawArray调用。

另一种方法是使用片段着色器中的discard命令跳过着色器中的三角形。在这种情况下,您必须提供有关哪些三角形需要渲染到着色器的信息(例如,通过制服)