OpenGL ES 2.0:在使用VBO的glDrawElements之前需要的命令

时间:2011-09-04 22:37:14

标签: opengl-es opengl-es-2.0 vbo

我已经设置了顶点和索引数据的顶点缓冲对象(VBO)。我还创建了一个GLprogram来使用自定义着色器,因此我在代码中调用了glUseProgram

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

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

我的问题是:我每次打电话给我必须拨打哪些 {/ 1>} 理想情况下,我只想致电glDrawElements出于性能原因,每个框架中都有自己的。

我正在阅读“OpenGL ES 2.0编程指南”这本书,但它无处告诉我每次绘制时必须使用哪些命令,以及我只需要调用一次。

1 个答案:

答案 0 :(得分:1)

glDrawElements提交几何体。如果您正在使用VBO,那么它使用当前绑定的GL_ELEMENT_ARRAY_BUFFER中的条目来索引GL_ARRAY_BUFFER的相关部分中的条目或为每个属性绑定的缓冲区。

如果您不更改任何其他绑定,则无需重复glDrawElements以外的任何其他呼叫。如果您当前致电glDrawElements,则复制并粘贴该行以显示两次,所有几何图形的绘制次数将是之前的两倍。