0

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

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

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

4

2 回答 2

2

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

于 2012-08-27T15:20:48.353 回答
1

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

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

于 2012-08-27T13:12:36.100 回答