我有一个缓冲区,其中包含我用于glDrawArrays
的顶点信息。缓冲区中的三角形作为精灵围绕屏幕间隔开。我想以某种方式省略绘制其中一些项目,而无需更新整个缓冲区。
有没有我可以修改顶点,以便在遇到顶点时不会绘制任何内容?我不希望完全删除它,因为这涉及再次更新整个缓冲区。
我的目标是一些只支持OpenGL ES 2.0的设备。
答案 0 :(得分:2)
您可以使用glDrawElements并提供索引缓冲区。
答案 1 :(得分:1)
glDrawArrays
包含offset
和count
个参数。您可以使用这些参数仅绘制缓冲区中可见的元素。这导致对单个缓冲区的多个glDrawArray
调用。
另一种方法是使用片段着色器中的discard
命令跳过着色器中的三角形。在这种情况下,您必须提供有关哪些三角形需要渲染到着色器的信息(例如,通过制服)