0

glDrawElements現在、2Dシーンの各スプライトを呼び出しています。これを変えたい。

シーンはオフスクリーンレンダリングバッファ(FBO)で構成されており、現在、シーン全体の構成に使用されているスプライトシートテクスチャは1つだけです。

すべてを単一の大きなバッファーにキューにglDrawElements入れると、それは機能すると思いますが、将来(複数のスプライトシートテクスチャがある場合)、を呼び出すたびに現在のバッファーをコミットする必要があります。glBindTexture必要とされている?

私が(この通常明白な質問に対して)尋ねる理由は、FBOに深度バッファーがあるため、スプライトを描画する順序が重要ではないかどうか(つまり、1つのテクスチャに対してすべてのスプライトを描画できるかどうか)疑問に思っているからです。他のテクスチャのすべてのスプライトを描画し、描画する順序を無視します(Z軸を使用してそれらを並べ替えます)。

4

1 に答える 1

2

ブレンディングが含まれていない場合、順序は実際には重要ではありません。しかし、より良いアプローチがあります。テキストアトラスを使用することです。

つまり、1回の描画呼び出しを使用してすべてのスプライトを描画し、テクスチャ座標を含めて使用するスプライトを選択します。(単一の)テクスチャには、すべてのスプライトが並んで含まれているだけです。

于 2012-12-30T19:18:36.860 に答える