異なるプラットフォーム向けにビルドするとき、ターゲット プラットフォームにおけるテクスチャの解像度やサイズ、品質を考慮する必要があります。デフォルトとなるオプションを設定して特定のプラットフォームでデフォルト設定を上書き(オーバーライド)できます。
このページでは、特に Android に関して、テクスチャ オーバライド(Texture Overrides) の詳細を説明しています。テクスチャオーバーライドの一般的な説明は、こちらを参照してください。
Texture Format | テクスチャに対して使用される内部表示。サイズと画質間でのトレードオフとなります。下記の例では、256 x 256 ピクセルのゲーム内テクスチャの最終サイズを示しています。 |
RGB Compressed DXT1 | 圧縮 RGB テクスチャ。Nvidia Tegra が対応。1 ピクセル 4 ビット (256x256 のテクスチャで 32 KB。) |
RGBA Compressed DXT5 | 圧縮 RGBA テクスチャ。Nvidia Tegra が対応。1 ピクセル 6 ビット (256x256 のテクスチャで 64 KB。) |
RGB Compressed ETC 4 bits | 圧縮 RGB テクスチャ。Android 用プロジェクトのデフォルトのテクスチャ形式。ETC1 は OpenGL ES 2.0 の一部であり、すべての OpenGL ES 2.0 GPU が対応しています。Alpha には非対応です。1 ピクセル 4 ビット(256x256 のテクスチャで 32 KB)。 |
RGB Compressed PVRTC 2 bits | 圧縮 RGB テクスチャ。Imagination PowerVR GPU が対応。1 ピクセル 2 ビット(256x256 のテクスチャで 16 KB)。 |
RGBA Compressed PVRTC 2 bits | 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。1 ピクセル 2 ビット(256x256 のテクスチャで 16 KB)。 |
RGB Compressed PVRTC 4 bits | 圧縮 RGB テクスチャ。Imagination PowerVR GPU が対応。1 ピクセル 4 ビット (256x256 のテクスチャで 32 KB)。 |
RGBA Compressed PVRTC 4 bits | 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。1 ピクセル 4 ビット (256x256 のテクスチャで 32 KB)。 |
RGB Compressed ATC 4 bits | 圧縮 RGB テクスチャ。Qualcomm Snapdragon が対応。1 ピクセル 4 ビット (256x256 のテクスチャで 32 KB)。 |
RGBA Compressed ATC 8 bits | 圧縮 RGBA テクスチャ。Qualcomm Snapdragon が対応。1 ピクセル 6 ビット (256x256 のテクスチャで 64 KB)。 |
RGB 16 bit | 65000 色、アルファなし。圧縮形式よりメモリー使用量が多いが、UI や、グラデーションのない明瞭なテクスチャには適する。256x256 のテクスチャで 128 KB)。 |
RGB 24 bit | トゥルーカラーですが、アルファは付きません。256x256 テクスチャに対して 192 KB を要します。 |
Alpha 8 bit | 高いクオリティのアルファチャンネルですが、色は付きません。256x256 テクスチャに対して 64 KB 要します。 |
RGBA 16 bit | 低質 Truecolor。アルファチャンネル付きテクスチャのデフォルト圧縮設定。256x256 のテクスチャで 128 KB。 |
RGBA 32 bit | アルファ付き、Truecolor。アルファ付きテクスチャの最高質圧縮設定。256x256 のテクスチャで 256 KB。 |
Compression quality | パフォーマンスを最速にしたい場合は Fast、画像を最高質にしたい場合は Best、その 2 つの中間を取りたい場合は Normal を選択します。 |
Tegra などの特定のハードウェア向けである場合以外は ETC1 圧縮がお奨めです。必要であれば外部のアルファチャンネルを保持して、テクスチャのフットプリントを低く保つことも可能です。
Unity では、Android 用の (パッキングタグで指定され作成された) アトラスに含まれているアルファ付きのテクスチャに ETC1 を使用することができます。テクスチャの “Compress using ETC1” チェックボックスを設定することで選択できます。これにより Unity は、作成されるアトラスにアルファありとアルファ無しの 2 つのテクスチャに分割します。その後、レンダリングパイプラインの最終工程でその 2 つを合成します。
どうしてもテクスチャにアルファチャンネルが必要であれば、RGBA 16 bit なら圧縮形式としてすべてのハードウェアベンダーがサポートしています。
DDS ファイルからはテクスチャをインポートすることができますが、現状では DXT 形式か非圧縮の画像形式のみ対応しています。
If your app utilizes an unsupported texture compression, the textures will be uncompressed to RGBA 32 and stored in memory along with the compressed ones. So in this case you lose time decompressing textures and lose memory storing them twice. It may also have a very negative impact on rendering performance.