最近、VAO (Vertex Array Object) について学びました。これまでのところ、それらは非常に優れているように見えますが、解決できない問題があります。私はたくさんのモデルを持っています。それらの頂点状態は別々の VAO に保存されているので、
glBindVertexArray(VAO);
これのインスタンスの描画を開始するために必要なのはこれだけです。問題は、追加の VAO をバインドする必要があることです。
glDrawElementsInstanced();
電話。そのため、オフセット、UV オフセット、カラー オーバーレイなどのデータが含まれています。これをバインドすると、前のものは自分自身をアンバインドするように見えます。これは OpenGL では理にかなっていると思いますが、両方をアクティブにするために何をすればよいかわかりません?
アイデアは、フレームごとにデータをアップロードせずに、同じモデルを共有するすべての静的オブジェクトを描画することです。これは完全に間違ったアプローチですか?