我已经设置了顶点和索引数据的顶点缓冲对象(VBO)。我还创建了一个GLprogram来使用自定义着色器,因此我在代码中调用了glUseProgram
。
我的顶点数据每帧都会发生变化,所以我为GL_STREAM_DRAW
个调用提供了glBufferData
(一个用于顶点数据,一个用于索引)。
我使用glBufferSubData
修改顶点数据的区域。在每个帧我想从第一个顶点绘制到第N个,N是一个变化的值。
我的问题是:我每次打电话给我必须拨打哪些 {/ 1>} 理想情况下,我只想致电glDrawElements
出于性能原因,每个框架中都有自己的。
我正在阅读“OpenGL ES 2.0编程指南”这本书,但它无处告诉我每次绘制时必须使用哪些命令,以及我只需要调用一次。
答案 0 :(得分:1)
glDrawElements
提交几何体。如果您正在使用VBO,那么它使用当前绑定的GL_ELEMENT_ARRAY_BUFFER
中的条目来索引GL_ARRAY_BUFFER
的相关部分中的条目或为每个属性绑定的缓冲区。
如果您不更改任何其他绑定,则无需重复glDrawElements
以外的任何其他呼叫。如果您当前致电glDrawElements
,则复制并粘贴该行以显示两次,所有几何图形的绘制次数将是之前的两倍。