2011-09-04 163 views
0

我设置一个顶点缓存对象(VBO)与顶点和索引数据只是glDrawElements之前所需的命令。我也创建了一个GL程序来使用自定义着色器,所以我在我的代码中调用glUseProgram的OpenGL ES 2.0:与VBO

我的顶点数据每帧都有变化,所以我提供了GL_STREAM_DRAW给我的两个glBufferData调用(一个用于顶点数据,一个用于索引)。

我用glBufferSubData当他们改变修改我的顶点数据的区域。在每一帧我想从第一个顶点到第N个,N是一个变化的值。

我的问题是:每次,我称之为glDrawElements该命令必须我称之为理想情况下,我想简单地在每个框架中调用glDrawElements,这是出于性能原因。

我研读了这本书“的OpenGL ES 2.0编程指南”,但无处它告诉我哪些命令我必须用我每次画的时候,而我只需要调用一次。

回答

1

glDrawElements提交几何。如果您正在使用维也纳组织则使用在当前绑定GL_ELEMENT_ARRAY_BUFFER在开往每个属性GL_ARRAY_BUFFER或缓冲区的相关部分索引项条目。

如果不更改任何其他绑定则是没有必要重复比glDrawElements以外的任何电话。如果您目前拨打glDrawElements的位置复制并粘贴该行出现两次,则所有几何图形都将被绘制两倍的次数。