3
2つのオブジェクトがあり、それぞれに独自のVAOと描画呼び出しがあるとします。このようなもの:別のバインドされたVAOのバインドを解除せずにVAOをバインドするとどうなりますか?
void Object::Draw() {
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES, foo, bar);
}
最初に、VAOをバインドしてレンダリングする最初のオブジェクトの描画呼び出しを呼び出します。それで、私は2番目のオブジェクトについても同じことをします。
これは動作し、両方のオブジェクトがレンダリングされることはわかっています。私の質問はなぜですか?以前にバインドされた他のVAOのバインドを解除せずにVAOをバインドすると、OpenGLの状態はどうなりますか?
あなたは(あなたが拘束されることには何もしたくないことを除い)OpenGLで何かをアンバインドする必要はありません。すべてのバインディングメソッドは、現在の状態をオーバーライドします。 – BDL