libGDX のドキュメントでは、SpriteBatch へのテクスチャのバインドについて説明しています...
[SpriteBatch] に最後のテクスチャとは異なるテクスチャが与えられた場合、最後のテクスチャがバインドされ、収集されたジオメトリが描画されるように送信され、新しいテクスチャのジオメトリの収集が開始されます。
描画されるいくつかの長方形ごとにテクスチャを変更すると、SpriteBatch が多くのジオメトリをバッチ処理できなくなります。また、テクスチャのバインドはややコストのかかる操作です。これらの理由から、多くの小さな画像を大きな画像に保存し、大きな画像の領域を描画して、ジオメトリのバッチ処理を最大化し、テクスチャの変更を回避することが一般的です。
このため、すべてのゲーム スプライト イメージを 1 つのテクスチャに配置しました。ただし、ゲームに大きな背景画像を配置して、画面全体を埋めたいと考えています。
私のオプションはどちらかのようです...
小さなゲーム スプライトに使用しているのと同じテクスチャに背景を配置するか、または...
背景には別のテクスチャを使用します。
#1の問題は、異なるレベルに異なる背景画像を使用したい場合、これは非常に実用的ではないように見えることです(画像が非常に大きくなるか、異なる背景ごとに複数の画像でゲームスプライトのコピーを作成する必要があります)。
しかし、#2 を行う場合、SpriteBatch を 2 つの異なるテクスチャにバインドしてから GPU に送信する必要があります。これはドキュメントで「かなり高価」と説明されています。
最善のアプローチが何であるかはわかりません。複数のテクスチャへのバインドについてそんなに心配する必要がありますか? または、私が検討していないより良いアプローチがありますか?
アドバイスを求めました、ありがとう!