1

opengl 2 (JOGL) で多くの可動キューブを効率的に描画するにはどうすればよいですか? すべてのキューブのコピーを含む巨大な VBO/VAO を構築し、1 回の呼び出しで描画する必要がありますか? または、MVP マトリックスを渡すキューブのインスタンスごとに glDraw を呼び出して、特定のキューブを移動できるようにしますか? もちろん、立方体は同じテクスチャ、頂点、ノルマックなどを共有します。10000以上の描画で最高のパフォーマンスを達成する必要がありますが、特定の立方体の位置を変更する可能性があります

4

2 に答える 2

5

すべての立方体ジオメトリ、法線などに単一のvboを使用します。

属性VBOからのデータを使用してキューブを変換するglslシェーダーを使用します。(glVertexAttribPointerなど)。

于 2012-12-10T13:41:58.327 に答える
1

各キューブを個別に描画すると、非常に高いバッチ数が表示され、パフォーマンスが大幅に低下します。

1つの大きなVBOを使用するのが最速ですが、ジオメトリを大幅に変更する必要がある場合は適切ではありません。ジオメトリをいくつかのバッチに分割することもできます(たとえば、1000 /バッチを実行します)。

別のオプションとして、インスタンス化または疑似インスタンス化を検討することもできます。 http://www.gamerendering.com/2008/10/21/instancing/

于 2012-12-10T13:01:51.200 に答える