假设我有2个不同的对象,每个对象都有自己的VAO和draw调用。像这样:
void Object::Draw() {
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES, foo, bar);
}
首先,我调用第一个对象的draw调用,该调用绑定其VAO并进行渲染。然后,对第二个对象执行相同的操作。
我知道这将起作用并且两个对象都将被渲染。我的问题是为什么。当我绑定一个VAO而不绑定任何其他先前绑定的VAO时,在OpenGL状态下会发生什么?
覆写。
如果绑定成功,则不会更改顶点数组对象的状态,并且任何先前的顶点数组对象绑定都会中断。
https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBindVertexArray.xhtml
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句