3

テクスチャ アトラスを使用して多くのアートワークをロードする OpenGL ゲームを作成しています。

テクスチャ アトラスは、画像を一度ロードしてからスプライトを切り出すため、優れています。ファイルが独立していれば、ディスクからすべてのファイルをロードするのに必要な時間を節約でき、イメージを保存するためのメモリを節約できます。しかし、私の考えでは、ある時点を超えると、この利点はそれほど真実ではなくなりますよね? 私の考えでは、テクスチャ アトラスが非常に巨大な場合、それを保存するために多くのメモリを浪費し、おそらくその上のスプライトの一部はそれほど頻繁に使用されないでしょう。

そのための最良のアプローチは何ですか?複数のスプライトに分割しますか? レベルのスプライトか何か?

とにかく、私の質問はこれです:アトラスが利点と見なされなければならない最大値に対応するピクセル単位のサイズは何ですか?

4

2 に答える 2

0

実際にテクスチャ内のすべての領域を使用していて、無駄なメモリ スペースを気にしない場合は、2048x2048 に移行しても特にパフォーマンスが低下することはありません。

問題は、サンプリング時にアンダー フィルタリングを行った場合 (たとえば、512*512 のテクスチャ領域が画面のはるかに小さい領域に投影された場合)、大量の余分なメモリ フェッチが発生する可能性があることです。大部分が 1:1 で描画されるスプライトを使用して 2D ゲームを作成している場合 (おそらくマイナーなスケーリングまたは回転を伴う)、それは問題ではありません。

同様に、3D レンダリングを行っていてミップマップがある場合、ミップマップはアンダーフィルターのケースを処理します。

于 2013-09-07T18:52:23.833 に答える