2017-08-11 90 views
3

假設我有2個不同的對象,每個對象都有自己的VAO並繪製調用。類似這樣的:綁定VAO而不解除綁定另一個綁定VAO會發生什麼?

void Object::Draw() { 
    glBindVertexArray(vao); 
    glDrawArrays(GL_TRIANGLES, foo, bar); 
} 

首先我調用第一個對象的繪製調用,它綁定它的VAO並呈現它。然後,我爲第二個對象做同樣的事情。

我知道這會工作,兩個對象都會呈現。我的問題是爲什麼。當綁定VAO而不解除綁定任何其他先前綁定的VAO時,OpenGL的狀態會發生什麼?

+1

你從來沒有在OpenGL解除綁定任何東西(除非你想什麼要綁定)。每個綁定方法都會覆蓋當前狀態。 – BDL

回答