私は OpenGL を使用しており、プログラムでさまざまな幾何学的形状 (正方形、三角形など) を各オブジェクトに異なるテクスチャで描画しています。
VBO とシェーダーを使用してレンダリングの実行をテストしたところ、オブジェクトごとに VBO を作成するのにうまく機能しました。この問題は、大量のオブジェクト (150 から 200 の間) の場合に発生します。これは、関数の呼び出しが非常に多いことを意味しますglDrawElements()
。
glDrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
最善の方法は、描画するすべての頂点 (頂点、テクスチャ座標、インデックスなど) を含む単一の VBO を作成することであることがわかりました。
これに関する問題は、VBO がすべてのジオメトリを 1 回描画するため、オブジェクトごとに異なるテクスチャを使用できないことです。
質問は..必要なことを実行するための最良の方法(最適な方法)は何ですか?glBegin ()
/glEnd ()
またはとしてすでに廃止された関数またはメソッドを使用せずにglDrawArrays ()
(私はオープンGL 3.0以降で作業しています)。
PD: C++ で OpenGL を使用しています。