2

XNAフレームワークがテクスチャを2サイズの最も近い累乗にアップスケールし、それをVRAMに送信することをどこかで読みました。これは、実際に機能する場合、多くの小さな(私の場合は150×150)テクスチャをロードするときに効率的ではない可能性があります。本質的に、アップスケーリングの結果として使用されていないテクスチャデータでメモリを浪費します。

それで、いくつかの自動最適化がありますか、それとも、すべてのテクスチャをロードする、「アップスケールされた」スペースが他のテクスチャを保持するのに十分な大きさの場所を見つけてそこに配置する、スプライトの位置を記憶するなど、独自の実装を作成する必要があります。 2つ(またはそれ以上)ではなくテクスチャ?

テクスチャごとにこれを手動で行うのは必ずしも便利ではありません(単一のテクスチャに多くの小さなスプライトを配置する)。後で作業するのが難しく(本質的に人間指向ではなくなる)、必ずしもスプライトが必要になるとは限りません。ゲームのレベルがあるので、スプライトの構成が異なる方がよいので、自動的に実行する必要があります。

4

1 に答える 1

3

「スプライトシート」または「テクスチャアトラス」と呼ばれるものを作成するために利用できるツールがあります。このXNAサンプルは、コンテンツパイプライン拡張の一部としてこれを行います。

テクスチャのパディングは、2の累乗以外のテクスチャをサポートしていないデバイスでのみ発生することに注意してください。たとえば、WindowsPhoneです。最新のGPUはRAMを浪費しません。ただし、これは、スプライトのバッチをマージできるようにするための便利な最適化です(詳細については、この回答を参照してください)。

于 2013-03-01T09:06:55.183 に答える