我认为VAO(顶点数组对象)应该存储像顶点属性一样的状态。当我创建一个VBO时,我指定了我的顶点属性:
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)nullptr);
glEnableVertexAttribArray(0);
// And so on
如果我绑定另一个VBO,我必须调用glVertexAttribPointer和glEnableVertexAttribArray三次,这是我每次切换VBO时的情况。我只有一个VAO,我永远不会改变它。有什么不对?我只使用一个顶点布局,如果每次切换时丢失此信息,我都不明白VAO会做什么。每个VAO只有一个VBO吗?