異なるプラットフォーム向けにビルドするとき、ターゲット プラットフォームにおけるテクスチャの解像度、サイズおよび品質を考慮する必要があります。デフォルトとなるオプションをセットして特定のプラットフォームでデフォルト設定を上書き(オーバーライド)できます。
このページでは、特に 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 | Truecolor、アルファなし。192 KB 256x256 のテクスチャで 192KB。 |
Alpha 8 bit | 高質アルファチャンネル、色なし。256x256 のテクスチャで 64 KB。 |
RGBA 16 bit | 低質 Truecolor。アルファチャンネル付きテクスチャのデフォルト圧縮設定。256x256 のテクスチャで 128 KB。 |
RGBA 32 bit | アルファ付き、Truecolor。アルファ付きテクスチャの最高質圧縮設定。256x256 のテクスチャで 256 KB。 |
Compression quality | パフォーマンスを最速にしたい場合は Fast、画像を最高質にしたい場合は Best、その二つの中間を取りたい場合は Normal を選択します。 |
Tegra などの特定のハードウェア向けである場合以外は ETC1 圧縮がお奨めです。必要であれば外部のアルファチャンネルを保持して、テクスチャのフットプリントを低く保つことも可能です。
Unity では、Android 用の (パッキングタグで指定され作成された) アトラスに含まれているアルファ付きのテクスチャに ETC1 を使用することができます。テクスチャの “Compress using ETC1” チェックボックスを設定することで選択できます。これにより Unity は、作成されるアトラスにアルファありとアルファ無しの 2 つのテクスチャに分割します。その後、レンダリングパイプラインの最終工程でその 2 つを合成します。
どうしてもテクスチャにアルファチャンネルが必要であれば、RGBA 16 bit なら圧縮形式としてすべてのハードウェアベンダーがサポートしています。
DDS ファイルからはテクスチャをインポートすることができますが、現状では DXT 形式か非圧縮の画像フォーマットのみ対応しています。
あなたのアプリがテクスチャ圧縮をサポートしていない場合、テクスチャは非圧縮の RGBA 32形式として圧縮テクスチャと一緒にメモリへ格納されます。 この場合、テクスチャを圧縮展開する分、無駄な計算時間が発生することとなり、その際、メモリー領域も二倍必要になります。これもまたレンダリングパフォーマンスに深刻な悪影響を与えます。