3
假設我有2個不同的對象,每個對象都有自己的VAO並繪製調用。類似這樣的:綁定VAO而不解除綁定另一個綁定VAO會發生什麼?
void Object::Draw() {
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES, foo, bar);
}
首先我調用第一個對象的繪製調用,它綁定它的VAO並呈現它。然後,我爲第二個對象做同樣的事情。
我知道這會工作,兩個對象都會呈現。我的問題是爲什麼。當綁定VAO而不解除綁定任何其他先前綁定的VAO時,OpenGL的狀態會發生什麼?
你從來沒有在OpenGL解除綁定任何東西(除非你想什麼要綁定)。每個綁定方法都會覆蓋當前狀態。 – BDL