由于OpenGL绘制调用受到最近绑定的VBO的影响,如果您还想要绘制在现场动态创建的不在VBO中的顶点,那么如何解除对VBO的绑定?
我看过的示例中没有一个像禁用属性数组指针那样禁用VBO缓冲区。也许这并不是特别常见,因为大多数应用程序要么拥有VBO中的所有内容,要么什么都没有,也许这两种情况混合在一起并不常见。
发布于 2013-04-15 01:24:46
要解除绑定VBO,只需在第二个参数设置为0的情况下调用glBindBuffer。
保留值为零,但每个缓冲区对象目标没有默认的缓冲区对象。相反,设置为零buffer有效地解除了先前绑定的任何buffer对象的绑定,并恢复了buffer对象目标的客户端内存使用。
然后,您必须绑定另一个VBO或从客户端内存中提取。
发布于 2014-03-04 23:55:13
另外,记得在混合VBO和非VBO时禁用属性指针。当你调用时:
GLES20.glEnableVertexAttribArray(positionHandle);后面应该跟一个:
GLES20.glDisableVertexAttribArray(positionHandle);完成绘图后,您可以使用其他绘图方法(VBO或非VBO)重新启用它。
https://stackoverflow.com/questions/15998510
复制相似问题