このページでは、特に Android に関して、テクスチャ オーバライド の詳細を説明しています。テクスチャオーバーライドの一般的な説明は、こちらを参照してください。
The information contained on this page assumes the reader has working knowledge of DXT and ETC Texture compression, OpenGL ES, and Android development.
テクスチャ圧縮と OpenGL ES に関する詳細な情報は以下のページを参照してください。
Texture format | Internal representation |
---|---|
RGB Compressed DXT1 | 圧縮 RGB テクスチャ。 Nvidia Tegra が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGB Crunched DXT1 | 圧縮 RGB テクスチャー。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT1 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT1 圧縮よりもより小さくテクスチャを圧縮できます。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。4 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。 |
RGBA Compressed DXT5 | 圧縮 RGBA テクスチャ。 Nvidia Tegra が対応。8 ビット/ピクセル (256x256 のテクスチャで 62 KB)。 |
RGBA Crunched DXT5 | 圧縮 RGBA テクスチャ。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT5 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT5 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から。 |
RGB Compressed ETC 4 bits | 圧縮 RGB テクスチャ。Unity の Android 用プロジェクトのデフォルトのテクスチャ形式。 ETC_RGB4 は OpenGL ES 2.0 の一部であり、全ての OpenGL ES 2.0 GPU が対応しています。アルファには非対応です。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGB Crunched ETC | 圧縮 RGBA テクスチャ。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT5 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT5 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。 |
RGB Compressed ETC2 4 bits | 圧縮 RGB テクスチャ。ETC2 は OpenGL ES 3.0 の一部であり、全ての OpenGL ES 3.0 GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGB + 1-bit Alpha Compressed ETC2 4 bits | 1 ビットパンチスルーアルファを持つ圧縮 RGB テクスチャ。ETC2 は OpenGL ES 3.0 の一部であり、全ての OpenGL ES 3.0 GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGBA Compressed ETC2 8 bits | 圧縮 RGBA テクスチャ。 全ての OpenGL ES 3.0 GPU が対応。8 ビット/ピクセル (256x256 のテクスチャーで 62 KB)。 |
RGBA Crunched ETC2 | 圧縮 RGBA テクスチャ。Crunch 圧縮は、ETC テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で ETC2_RGBA8 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の ETC2_RGBA8 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。全ての OpenGL ES 3.0 GPU が対応。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。 |
RGB Compressed PVRTC 2 bits | 圧縮 RGB テクスチャ。 Imagination PowerVR GPU が対応。2 ビット/ピクセル (256x256 のテクスチャで 16 KB)。 |
RGBA Compressed PVRTC 2 bits | 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。2 ビット/ピクセル (256x256 のテクスチャで 16 KB)。 |
RGB Compressed PVRTC 4 bits | 圧縮 RGB テクスチャ。 Imagination PowerVR GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGBA Compressed PVRTC 4 bits | 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGB Compressed ATC 4 bits | 圧縮 RGB テクスチャ。Qualcomm Snapdragon が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。 |
RGBA Compressed ATC 8 bits | 圧縮 RGBA テクスチャ。Qualcomm Snapdragon が対応。8 ビット/ピクセル (256x256 のテクスチャで 64 KB)。 |
RGB Compressed ASTC 4x4 block RGB Compressed ASTC 5x5 block RGB Compressed ASTC 6x6 block RGB Compressed ASTC 8x8 block RGB Compressed ASTC 10x10 block RGB Compressed ASTC 12x12 block |
圧縮 RGB テクスチャ。OpenGL ES 3.2、OpenGL ES 3.1+AEP GPU のすべてと、OpenGL ES 3.0 GPU の一部が対応。この圧縮形式は固定の 128 ビットブロックサイズを使用します。ピクセルブロックサイズ (4x4 から 12x12) によって、各ピクセルに 8 から 0.89 ビットを利用します。圧縮テクスチャのサイズは256x256 のテクスチャで 64KB (4x4 ブロック、最高品質) から、256x256 のテクスチャで 7.6KB (12x12 ブロック、最高圧縮率) 。 |
RGBA Compressed ASTC 4x4 block RGBA Compressed ASTC 5x5 block RGBA Compressed ASTC 6x6 block RGBA Compressed ASTC 8x8 block RGBA Compressed ASTC 10x10 block RGBA Compressed ASTC 12x12 block |
圧縮 RGBA テクスチャ。OpenGL ES 3.2、OpenGL ES 3.1+AEP GPU のすべてと、OpenGL ES 3.0 GPU の一部が対応。この圧縮形式は固定の 128 ビットブロックサイズを使用します。ピクセルブロックサイズ (4x4 から 12x12) によって、各ピクセルに 8 から 0.89 ビットを利用します。圧縮テクスチャのサイズは256x256 のテクスチャで 64 KB (4x4 ブロック、最高品質) から、256x256 のテクスチャで 7.6 KB (12x12 ブロック、最高圧縮率) 。 |
RGB 16 bit | アルファなしの 65000 色。圧縮された形式よりもメモリを消費しますが、UI やグラデーションのないくっきりとしたテクスチャにより適しています。256x256 のテクスチャで 128 KB。 |
RGB 24 bit | アルファ なしのトゥルーカラー。256x256 テクスチャで 192 KB。 |
Alpha 8 bit | カラーなしの高品質アルファチャンネル。256x256 テクスチャで 64 KB。 |
RGBA 16 bit | 低品質のトゥルーカラー。アルファチャンネルありのデフォルトのテクスチャ圧縮。256x256 テクスチャで 12 KB。 |
RGBA 32 bit | アルファチャンネルありのトゥルーカラー。アルファチャンネルありのテクスチャ圧縮では最高品質。256x256 テクスチャで 256 KB。 |
Compression quality | パフォーマンスを最速にしたい場合は Fast、画像を最高質にしたい場合は Best、その 2 つの中間を取りたい場合は Normal を選択します。 |
If your app is installed on a device that doesn’t support the Texture compression format it uses, Unity decompresses the Textures to RGBA 32 and store them in the device’s memory, along with the compressed Textures, while the app is running. This leads to increased loading times and higher memory usage, because Unity must decompress the Textures and store two versions of the Textures used (compressed and uncompressed). This can also have a large impact on rendering performance, especially on older, slower devices.
Use ETC2 compression unless your app targets specific hardware like the Nvidia Tegra. ETC2 supports Textures with and without an alpha channel, and all OpenGL ES 3 devices support it. To avoid software decompression, follow these steps:
To target OpenGL ES 2 and OpenGL ES 3 devices, you can create and publish two different APKs. Follow these steps:
複数の APK ファイルの公開に関する詳細は、以下の Android Developer ドキュメントを参照してください。
OpenGL ES 2 をターゲットとする APK を構築するときは、ETC1 テクスチャ圧縮を使用します。
The Texture compression format for OpenGL ES2-targeted APKs can be ETC1. Unity can use ETC1 for Textures with Alpha, provided they are placed on a sprite atlas (by specifying the packing tag) and the build is for Android. You can opt in for this by setting the Compress using ETC1 checkbox for the Texture. Unity then splits the resulting atlas into two Textures, each without alpha, and then combines them in the final parts of the render pipeline.
If you must store an alpha channel in a Texture, all hardware vendors support the RGBA 16 bit compression format.
2017–09–18 修正されたページ
Unity 2017.1 のアップデート機能
Crunch 圧縮形式は Unity 2017.3 で更新NewIn20173