私はglBufferData
に与えるバッファを構築したり、変更してシーンをレンダリングしています。 Vertex Array Objectsの私の理解は、私が使用しているすべてのVBOの手動バインドをスキップできるようにすることです。これは、私のバッファを常に更新する場合にも当てはまりますか?VBOを変更する必要がある場合、VAOを再構築する必要はありますか?
私はVAOをバインドして、glBufferData
と呼んで、頂点とインデックス(私が現時点で持っている唯一の2つのVBO)を更新してからレンダリングできますか?
VBOでメモリマッピングを使用できますか?その後、VAOをバインドし、バッファを変更してからレンダリングできますか?
VAOは正確に何をしていますか? VBOに頂点属性のバインディングを保存して自動化するショートカットの機能ですか?データまたはバインディングの所有権を取得していますか?
VAOは、バインドしたVBOに影響しませんか?私はそれらをバインドし、 'glBufferData'を呼び出す必要があります。 –
@Robert Rouhaniあなたの頂点のレイアウトがほとんどの描画で同じであることを考慮すると、VBOごとに別の頂点属性を格納する必要があるというのは非常にばかげています。私はこれを避けようとしばらくしたが、どこにもいなかった。 – Zebrafish
@TitoneMaurice取られるスペースの量は最小限(バイトオーダ)でなければなりません。別の属性をバインドする余分なGL呼び出しがボトルネックになってはいけません。あなたが望む最も近いものがインスタンス化している、私の意見では、他のものは不必要な/時期尚早の最適化ではありません。 –