1つのテクスチャアトラス?


8

テクスチャアトラスを使用する場合、すべてのスプライトを単一のテクスチャアトラスに配置する必要がありますか?それとも、複数の小さなテクスチャアトラスが必要な場合がありますか?

回答:


7

ソフトウェアの多くのことのように、それはバランスをとる行為です。テクスチャスワップが少ない方が良いですが、大きすぎるテクスチャを取得するとパフォーマンスが低下する可能性もあります。さらに、多数のスプライトを含むスプライトシートは、物流管理が難しい場合があります。

より大きなスプライトシートを管理しやすくするために、スプライトを別々にして、ゲームで使用するためにスプライトシートに結合することをお勧めします。次のようなツール(どちらも非常に巧妙な名前が付いています)を使用できます。

これらのツールを使用すると、一緒に属しているアニメーションを確実に同じスプライトシートに配置できます。そうすれば、アニメーションの途中でテクスチャを切り替える必要がなくなります。

残念ながら、最大のテクスチャサイズの普遍的な標準はありません。それだけでなく、グラフィックスプラットフォーム間だけでなく、ハードウェアによっても異なります。ただし、グラフィックスプラットフォームがサポートできる最大値はありますが、ハードウェアがサポートするという意味ではありません。大きすぎるテクスチャを読み込まないように、ゲームでチェックを作成してください。


私はクロスプラットフォームのゲームを作るつもりです(主にデスクトップですが、おそらくiOS)。テクスチャの最大サイズがどれだけ変化すると予想できますか?
アーロン

1
モバイルの制限についてはあまり知りません。デスクトップの場合、サポートするハードウェアの範囲によって異なります。2048x2048は、ほとんどのデスクトップがサポートする中程度から高い数値です。iOSの場合、このスレッドは有望に見えます。
MichaelHouse

実行時にglTexSubImageを介してテクスチャアトラスを作成できるのに、なぜコンテンツパイプラインに不要なツールを追加するのですか?
API-Beast

最大のテクスチャサイズをクエリでき、推測する必要がないため、その方法でより柔軟にできることは言うまでもありません。
API-Beast

4
(1)TexSubImageは、実行時に非常に遅いことがよくあります。非常に注意深いパラメーター選択が必要です。(2)TexSubImageが提供しないアトラス内の画像の場所を選択する方法がまだ必要です。(3)TexSubImageは、どのスプライトシートがどの画像を配置するかという問題を解決しません。(3)TexSubImageは最大サイズを照会する機能を提供しませ -glGetは提供し、外部ツールを使用しても引き続き使用できます。
Maximus Minimus 2012年

5

テクスチャは少ないほど良いです。したがって、1つの大きなものが最適です。ただし、プラットフォームと言語によっては、画像のサイズに制限があります。したがって、2048 x 2048 pxが画像の最大サイズであり、テクスチャアトラスがそれよりも大きい場合、2つの小さいアトラスを使用するのが最適です。


3
+1、および-複数のアトラスが必要な場合-一緒に使用される画像を同じアトラスにグループ化することを確認してください。そうでない場合、各描画呼び出しで1つのアトラスから別のアトラスに切り替える必要があり、全体の演習が行われます。何も得ない。
Maximus Minimus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.