サイドプロジェクトとして2dゲームエンジンを作成しています。私はいくつかの実験と研究を行ってきましたが、同じVBOでバッチ(複数のオブジェクトを描画する)を提案している多くの人が出てきました。たとえば、自分のシーンにたくさんのツリーがある場合、同じメモリフットプリントを持つため、すべてのツリーを同じVBOに配置してから、単一のglDrawArraysを使用してすべてのツリーを描画できます。OpenGL VBOのバッチベストプラクティス
これは問題ありませんが、それは意味があります...しかし、私はどのように私は各ツリーのために異なる変換を送信することができますか?シェーダーにはどうすればいいですか?または、私はCPU上で計算を行い、VBO全体をそれぞれ描画すると仮定してこのアプローチですか?あなたが探している用語がInstancingある
ああ、私の質問では少し不明だったかもしれません。私はインスタンス化を認識していましたが、各ツリーのモデルはわずかに異なるかもしれませんが、同じテクスチャを使用しています。おそらく段ボール箱が良い例かもしれません。私が第二のリンクへの応答を見ると、最初の質問に対する彼の答えは、私が何を話しているかです。 – TomShar
あなたが何を求めているのかは不明です。アニメーションについて尋ねるかどうかは、静的なジオメトリについて話しています。段ボールごとに、実際にインスタンス化して描くことができると聞こえます。 – ybungalobill
私は彼が1つのVBOで複数のオブジェクトを次々と持つことを理解していました。glDrawMulti *()を使用して、異なる形状のオブジェクトをすべて描画します(同じテクスチャを使用します)。私が求めているのは、あなたがちょうど役に立たない同じ位置にVBOのすべての項目を描画するのと同じように、それらに異なる変換を与える方法です。あなたが同じことを何度もレンダリングしようとしている場合にのみ、あなたが提案したようにインスタンス化することが推奨されます。私はすべてのオブジェクトが単一のVBOにあるので、1つのglDraw呼び出しを使用して異なる項目をレンダリングすることを求めています。 – TomShar