Android Player Settings
android-gradle-troubleshooting

Android の 2D テクスチャ オーバーライド

異なるプラットフォーム向けにビルドするとき、ターゲット プラットフォームにおけるテクスチャの解像度、サイズや品質を考慮する必要があります。デフォルトとなるオプションを設定して特定のプラットフォームでデフォルト設定を上書き(オーバーライド)できます。

このページでは、特に 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形式として圧縮テクスチャと一緒にメモリへ格納されます。 この場合、テクスチャを圧縮展開する分、無駄な計算時間が発生することとなり、その際、メモリー領域も二倍必要になります。これもまたレンダリングパフォーマンスに深刻な悪影響を与えます。

Android Player Settings
android-gradle-troubleshooting