1

私は XNA プロジェクトに取り組んでおり、メモリ使用量に関する問題に直面しています。特定のテクスチャにインデックス付きカラー PNG 8 と PNG 24 または PNG 32 を使用すると、メモリが解放されるかどうかに興味がありました。アプリは間違いなく小さくなりますが、XNA のコンテンツ マネージャーがそれらをロードするときに、圧縮されていないか、損失のない画像として機能するかどうかに興味があります。

4

2 に答える 2

1

つい最近、同様の質問に答えました。

ゲームを配布するときにスペースを節約したい場合は、PNG ファイル (jpeg も使用できます) を配布し、Texture2D.FromStream. あらかじめ乗算されたアルファなどを自分で処理する必要があることに注意してください。

GPU のスペースを節約したい場合 (転送されるデータの量が少なくなるため、テクスチャ フェッチも改善されます)、より小さなテクスチャ フォーマットを使用できます。サポートされているテクスチャ形式のリストは、この表にあります。

パレット画像 (PNG8 など) や 8 ビット カラー画像はまったくサポートされていませんが、16 ビット形式がいくつかあります ( Bgr565Bgra5551Bgra4444)。DXT 圧縮形式も利用できます。6:1 の不透明な DXT1 を除いて、これらは 4:1 の比率で圧縮されます。

両方のテクニックを同時に使用できます。

于 2012-10-22T15:50:35.253 に答える
0

この質問を投稿した直後に、誰かが Facebook のこのリンクを教えてくれました。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh855082%28v=vs.92%29.aspx

どうやら、XNA では、あらゆるタイプの PNG がメモリ内で非圧縮になるため、DXT の使用を検討する必要があります。

于 2012-10-22T14:47:59.310 に答える