Version: 2021.2
テクスチャ圧縮形式
レンダーテクスチャ

Recommended, default, and supported texture compression formats, by platform

このページには以下の情報が含まれています。

This page does not contain information about console platforms. For information about console platforms, see the platform-specific documentation.

For an overview of texture compression formats, see Texture compression formats. For information about texture import settings and how to set per-texture platform-specific overrides, see Texture import settings. Some texture import settings can also be overridden globally in Build Settings, mostly to speed up iteration time during development.

用語

This page uses the following terminology:

  • Bits per pixel (bpp) is the amount of storage required for a single texture pixel. Textures with a lower bpp value have a smaller size on disk and in memory. A lower bpp value also means that the GPU can store more pixels in its cache, which results in faster texture access.
  • LDR (Low Dynamic Range) refers to most typical images where colors are conceptually between 0.0 (black) and 1.0 (white) values. The majority of image files (such as PNG and JPG) have low dynamic range.
  • HDR (High Dynamic Range) refers to special image and texture formats where colors can have a higher range than 0 through 1. Image file formats like .exr or .hdr are often used for HDR image data. At runtime and on the GPU, there are several HDR formats, trading off accuracy, range and memory usage.
  • RGB is a color model in which red, green and blue combine to reproduce an array of colors.
  • RGBA is a version of RGB with an alpha channel, which supports blending and opacity alteration.
  • Variable bit rate (VBR) means that bits per pixel is not a fixed value, and depends on the actual content instead. VBR only applies to Crunch compression, and only texture size on disk. The size in memory is the same as when using the underlying texture format (for example, RGB Compressed DXT1 for RGB Crunched DXT1).

Recommended texture compression formats, by platform

デスクトップ

For devices with DirectX 11 or better class GPUs, where support for BC7 and BC6H formats is guaranteed to be available, the recommended choice of compression formats is: RGB textures - DXT1 at four bits/pixel. RGBA textures - BC7 (higher quality, slower to compress) or DXT5 (faster to compress), both at eight bits/pixel. HDR textures - BC6H at eight bits/pixel. If you need to support DirectX 10 class GPUs on PC (NVIDIA GPUs before 2010, AMD before 2009, Intel before 2012), then DXT5 instead of BC7 would be preferred, since these GPUs do not support BC7 nor BC6H.

See the Supported texture compression formats reference table for detailed information about all supported formats.

iOS and tvOS

For Apple devices that use the A8 chip (2014) or above, ATSC is the recommended texture compression format for RGB and RGBA textures. This format allows you to choose between texture quality and size on a granular level: all the way from eight bits/pixel (4x4 block size) down to 0.89 bits/pixel (12x12 block size). If support for older devices is needed, or you want additional Crunch compression, then Apple devices support ETC/ETC2 formats starting with A7 chip (2013). For even older devices, PVRTC is the compression format to use. On iOS you can configure the default texture compression format in the Player Settings. PVRTC gives you the broadest possible compatibility. ASTC is preferred, but is not supported on A7 devices (the very first Metal-enabled devices) and will be unpacked at runtime.

See the Supported texture compression formats reference table for detailed information about all supported formats.

Android

Texture compression support on Android is complicated. You might need to build several application versions with different sub-targets.

You can select the default compression format in Player Settings. Your options are ASTC, ETC2 and ETC (ETC1 for RGB, ETC2 for RGBA). See Texture compression settings for more details on how the different settings interact.

For LDR RGB and RGBA textures, most modern Android GPUs that support OpenGL ES 3.1 or Vulkan also support ASTC compression format, including: Qualcomm GPUs since Adreno 4xx / Snapdragon 415 (2015), ARM GPUs since Mali T624 (2012), NVIDIA GPUs since Tegra K1 (2014), PowerVR GPUs since GX6250 (2014).

If you need support for older devices, or you want additional Crunch compression, then all GPUs that run Vulkan or OpenGL ES 3.0 support the ETC2 format. The resulting image quality is quite high, and it supports one- to four-component texture data. OpenGL ES 2 devices do not support the ETC2 format, so Unity decompresses the texture at runtime to the format ETC2 fallback specifies. For even older devices, usually only ETC format is available. The drawback is that there is no direct alpha channel support. For Sprites, Unity offers an option to use ETC1 compression by splitting a texture into two ETC1 textures: one for RGB, one for alpha. To enable this, enable the Android-specific Split Alpha Channel option for the Texture when importing a Sprite Atlas. The sprite shader samples both textures and combines them into the final result.

For HDR textures, ASTC HDR is the only compressed format available on Android devices. ASTC HDR requires Vulkan or GL_KHR_texture_compression_astc_hdr support. ASTC is the most flexible format. If a device does not support ASTC HDR the texture is decompressed at runtime to RGB9e5 or RGBA Half, depending on alpha channel usage.

For devices that don’t support ASTC HDR, all devices running Vulkan, Metal, or OpenGL ES 3.0 support RGB9e5, which is suitable for textures without an alpha channel. If an alpha channel or even wider support is needed, use RGBA Half. This takes twice as much memory as RGB9e5.

See the Supported texture compression formats reference table for detailed information about all supported formats.

Default texture compression formats, by platform

以下は各プラットフォームで使用されるデフォルト形式を表しています。

プラットフォーム カラーモデル 圧縮なし 標準品質 (デフォルト) 高品質 低品質 (高パフォーマンス)
Windows, Linux, macOS RGB RGB 24 bit RGB Compressed DXT1 RGB(A) Compressed BC7 RGB Compressed DXT1
RGBA RGBA 32 bit RGBA Compressed DXT5 RGB(A) Compressed BC7 RGBA Compressed DXT5
HDR RGBA Half RGB Compressed BC6H RGB Compressed BC6H RGB Compressed BC6H
WebGL RGB RGB 24 bit RGB Compressed DXT1 RGB Compressed DXT1 RGB Compressed DXT1
RGBA RGBA 32 bit RGBA Compressed DXT5 RGBA Compressed DXT5 RGBA Compressed DXT5
Android (configurable) RGB RGB 24 bit RGBA Compressed ASTC 6x6 block
RGB Compressed ETC2
RGB Compressed ETC
RGBA Compressed ASTC 4x4 block
RGB Compressed ETC2
RGB Compressed ETC
RGBA Compressed ASTC 8x8 block
RGB Compressed ETC2
RGB Compressed ETC
RGBA RGBA 32 bit RGBA Compressed ASTC 6x6 block
RGBA Compressed ETC2
RGBA Compressed ASTC 4x4 block
RGBA Compressed ETC2
RGBA Compressed ASTC 8x8 block
RGBA Compressed ETC2
iOS (configurable) RGB RGB 24 bit RGBA Compressed ASTC 6x6 block
RGB Compressed PVRTC 4 bits
RGBA Compressed ASTC 4x4 block
RGB Compressed PVRTC 4 bits
RGBA Compressed ASTC 8x8 block
RGB Compressed PVRTC 2 bits
RGBA RGBA 32 bit RGBA Compressed ASTC 6x6 block
RGBA Compressed PVRTC 4 bits
RGBA Compressed ASTC 4x4 block
RGBA Compressed PVRTC 4 bits
RGBA Compressed ASTC 8x8 block
RGBA Compressed PVRTC 2 bits
tvOS RGB RGB 24 bit RGBA Compressed ASTC 6x6 block RGBA Compressed ASTC 4x4 block RGBA Compressed ASTC 8x8 block
RGBA RGBA 32 bit RGBA Compressed ASTC 6x6 block RGBA Compressed ASTC 4x4 block RGBA Compressed ASTC 8x8 block
Default RGBA RGBA 32 bit RGBA 16 bit RGBA 16 bit RGBA 16 bit

Texture compression formats, by quality

The table below shows each compression format available in Unity, and their quality details.

テクスチャ圧縮形式 説明 Channels Quality Bits per pixel Size of 1024x1024 texture, in MB
RGB(A) Compressed BC7 Compressed RGB or RGBA RGB or RGBA 8 1
RGBA Crunched DXT5 Compressed RGBA, with additional on-disk Crunch compression RGBA Low to medium Variable Variable
RGBA 64 bit Uncompressed RGBA, very high precision RGBA Very high 64 8
RGBA 32 bit Uncompressed RGBA RGBA 32 4
RGBA 16 bit Quantized RGBA RGBA 16 2
RGB Compressed DXT1 Compressed RGB (also known as BC1) RGB 4 0.5
RGB Crunched DXT1 Compressed RGB, with additional on-disk Crunch compression RGB Low to medium Variable Variable
RGB 48 bit Uncompressed RGB, very high precision. Converted to RGBA 64 bit for the GPU RGB Very high 48 disk, 64 GPU 6 disk, 8 GPU
RGB 24 bit Uncompressed RGB. Converted to RGBA 32 bit for the GPU RGB 24 disk, 32 GPU 3 disk, 4 GPU
RGB 16 bit Quantized RGB RGB 16 2
RG Compressed BC5 Compressed two channel (RG) RG 8 1
RG 32 bit Uncompressed two channel (RG), very high precision RG Very high 32 4
R Compressed BC4 Compressed single channel (R) R 4 0.5
R 8 Uncompressed single channel (R) R 8 1
R 16 bit Uncompressed single channel (R), very high precision R Very high 16 2
Alpha 8 Uncompressed single channel (A) A 8 1
RGBA Half HDR, half-precision (FP16) RGBA, –64k to +64k range RGBA 64 8
RGB Compressed BC6H HDR, compressed RGB, 0 to +64k range RGB 8 1
RGB9e5 32 Bit Shared Exponent Float HDR, quantized RGB, 0 to +64k range RGB 32 4
RGB(A) Compressed ASTC Compressed RGB or RGBA, size & quality dependent on block size RGB or RGBA Low to high 12x12: 0.89, 10x10: 1.28, 8x8: 2, 6x6: 3.56, 5x5: 5.12, 4x4: 8 12x12: 0.11, 10x10: 0.16, 8x8: 0.25, 6x6: 0.45, 5x5: 0.64, 4x4: 1.0
RGBA Compressed ETC2 Compressed RGBA RGBA 8 1
RGBA Crunched ETC2 Compressed RGBA, with additional on-disk Crunch compression RGBA Low to medium Variable Variable
RGB + 1-bit Alpha Compressed ETC2 4 bits Compressed RGBA, with alpha values fully opaque or fully transparent RGBA 4 0.5
RGBA Compressed PVRTC 4 bits Compressed RGBA, texture required to be square RGBA 4 0.5
RGBA Compressed PVRTC 2 bits Compressed RGBA, texture required to be square RGBA 2 0.25
RGB Compressed ETC2 Compressed RGB RGB 4 0.5
RGB Compressed ETC Compressed RGB RGB 4 0.5
RGB Crunched ETC Compressed RGB, with additional on-disk Crunch compression RGB Variable Variable
RGB Compressed PVRTC 4 bits Compressed RGB, texture required to be square RGB 4 0.5
RGB Compressed PVRTC 2 bits Compressed RGB, texture required to be square RGB 2 0.25
RG Compressed EAC 8 bit Compressed two channel (RG) RG 8 1
R Compressed EAC 4 bit Compressed single channel (R) R 4 0.5
RGB(A) Compressed ASTC HDR HDR, compressed RGB or RGBA, size & quality dependent on block size RGB or RGBA Low to High 12x12: 0.89, 10x10: 1.28, 8x8: 2, 6x6: 3.56, 5x5: 5.12, 4x4: 8 12x12: 0.11, 10x10: 0.16, 8x8: 0.25, 6x6: 0.45, 5x5: 0.64, 4x4: 1.0

Supported texture compression formats, by platform

The table below shows each compression format available in Unity, and the platforms that support them.

テクスチャ圧縮形式 Windows macOS Linux Android iOS & tvOS WebGL (Desktop Browsers) WebGL (iOS and Android browser)
RGB(A) Compressed BC7 yes (1) yes (1) 不可 不可 yes (1) 不可
RGBA Compressed DXT5 no (3) 不可 一部可 (2) 不可
RGBA Crunched DXT5 no (3) 不可 一部可 (2) 不可
RGBA 64 bit 一部可 (6) 不可 不可
RGBA 32 bit
RGBA 16 bit
RGB Compressed DXT1 no (3) 不可 一部可 (2) 不可
RGB Crunched DXT1 no (3) 不可 一部可 (2) 不可
RGB 48 bit 一部可 (6) 不可 不可
RGB 24 bit
RGB 16 bit
RG Compressed BC5 不可 不可 yes 不可
RG 32 bit 一部可 (6) 不可 不可
R Compressed BC4 不可 不可 yes 不可
R 8 一部可 (5) 一部可 (5) 一部可 (5)
R 16 bit 一部可 (6) 一部可 (6) yes (14) yes (14)
Alpha 8
RGBA Half 一部可 (7) 一部可 (7) 一部可 (7)
RGB Compressed BC6H yes (1) yes (1) 不可 不可 yes (1) 不可
RGB9e5 32 Bit Shared Exponent Float 一部可 (4) 一部可 (4) 一部可 (4)
RGB(A) Compressed ASTC 不可 不可 不可 partial (8) yes (10) 不可 yes (13 & 10)
RGBA Compressed ETC2 不可 不可 不可 一部可 (9) 不可
RGBA Crunched ETC2 不可 不可 不可 一部可 (9) 不可
RGB + 1-bit Alpha Compressed ETC2 4 bits 不可 不可 不可 一部可 (9) 不可
RGBA Compressed PVRTC 4 bits 不可 不可 不可 no (12) 不可 不可
RGBA Compressed PVRTC 2 bits 不可 不可 不可 no (12) 不可 不可
RGB Compressed ETC2 不可 不可 不可 一部可 (9) 不可
RGB Compressed ETC 不可 不可 不可 不可
RGB Crunched ETC 不可 不可 不可 不可
RGB Compressed PVRTC 4 bits 不可 不可 不可 no (12) 不可 不可
RGB Compressed PVRTC 2 bits 不可 不可 不可 no (12) 不可 不可
RG Compressed EAC 8 bit 不可 不可 不可 一部可 (9) 不可
R Compressed EAC 4 bit 不可 不可 不可 一部可 (9) 不可
RGB(A) Compressed ASTC HDR 不可 不可 不可 partial (11) partial (11) 不可 partial (11)

ノート:

  1. Except on pre-DX11 level GPUs, or macOS when using WebGL or OpenGL. When not supported, BC6H textures get decompressed to RGBA Half, and BC7 get decompressed to RGBA32 at load time.
  2. With linear rendering on web browsers that do not support sRGB DXT, textures are decompressed to RGBA32 at load time.
  3. Except on Android devices with NVIDIA Tegra GPUs; these do support DXT/BC formats.
  4. Except on OpenGL ES 2.0 / WebGL 1.
  5. When on OpenGL ES 2.0 / WebGL 1: requires GL_EXT_texture_rg extension support.
  6. Requires GL_EXT_texture_norm16 or corresponding Vulkan capability on Android.
  7. When on OpenGL ES 2.0 / WebGL 1: requires OES_texture_half_float extension support.
  8. Requires Vulkan or GL_KHR_texture_compression_astc_ldr OpenGL ES extension.
  9. Except on OpenGL ES 2.0; there ETC2 textures are decompressed into the format ETC2 fallback specifies in the Android Build Settings or on the Android tab for the Platform-specific overrides.
  10. Except on Apple A7 chip devices (2013).
  11. Android: requires GL_KHR_texture_compression_astc_hdr extension. iOS: requires A13 or later chip (2019).WebGL: requires WEBGL_compressed_texture_astc extension and HDR profile. When not supported, the texture is decompressed to RGB9E5 format, losing the alpha channel.
  12. Except on Android devices with Imagination PowerVR GPUs; these do support PVRTC formats.
  13. Requires WEBGL_compressed_texture_astc extension.
  14. Requires EXT_texture_norm16 extension and WebGL 2.
テクスチャ圧縮形式
レンダーテクスチャ
Copyright © 2020 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961