由于OpenGL绘图调用受最近绑定的VBO的影响,如果您还想在不在VBO中的地点绘制动态创建的顶点,如何取消绑定VBO?
我所看到的所有示例都没有显示如何禁用VBO缓冲区,就像属性数组指针一样。也许这并不是特别常见,因为大多数应用程序要么在VBO中拥有所有内容,要么没有任何东西,也许混合这两种情况并不常见。
答案 0 :(得分:0)
要取消绑定VBO,只需调用glBindBuffer
,第二个参数设置为0。
保留零值,但没有默认缓冲区对象 每个缓冲对象目标。相反,缓冲区有效地设置为零 取消绑定先前绑定的任何缓冲区对象,并恢复客户端内存 该缓冲区对象目标的用法。
然后你必须绑定另一个VBO或从客户端内存中绘制。
答案 1 :(得分:0)
还要记住在混合VBO和非VBO时禁用属性指针。当你打电话:
GLES20.glEnableVertexAttribArray(positionHandle);
接下来应该是:
GLES20.glDisableVertexAttribArray(positionHandle);
完成绘图后,可以使用其他绘图方法(VBO或非VBO)重新启用绘图。