BC7 및 BC6H 포맷 지원이 보장되는 DirectX 11 이상 클래스 GPU를 사용하는 기기의 경우 다음과 같은 압축 포맷을 사용할 것을 권장합니다. RGB 텍스처 - 4비트/픽셀에서 DXT1. RGBA 텍스처 - 8비트/픽셀에서 BC7(높은 품질, 느린 압축 속도) 또는 DXT5(빠른 압축 속도). HDR 텍스처 - 8비트/픽셀에서 BC6H. PC에서 DirectX 10 클래스 GPU(2010년 이전의 NVIDIA GPU, 2009년 이전의 AMD, 2012년 이전의 Intel)를 지원해야 하는 경우, 이러한 GPU는 BC7이나 BC6H를 지원하지 않으므로 BC7 대신 DXT5를 사용하는 것이 좋습니다.
지원되는 모든 포맷에 대한 세부 정보는 지원되는 텍스처 포맷 레퍼런스 표를 참조하십시오.
ASTC는 A8 칩(2014) 이상을 사용하는 Apple 기기를 위해 RGB와 RGBA 텍스처에 권장되는 텍스처 포맷입니다. 이 포맷을 사용하면 8비트/픽셀(4x4 블록 크기)에서 0.89비트/픽셀(12x12 블록 크기)까지 세분화된 수준에서 텍스처 품질과 크기를 선택할 수 있습니다. 구형 기기에 대한 지원이 필요하거나 크런치 압축을 추가하려는 경우 Apple 기기는 A7 칩(2013)부터 시작하는 ETC/ETC2 포맷을 지원합니다. 그보다 구형인 기기에서도 PVRTC 포맷을 사용할 수 있습니다. iOS의 경우 Player Settings에서 기본 텍스처 포맷을 설정할 수 있습니다. PVRTC는 가장 광범위한 호환성을 제공합니다. ASTC는 선호되는 포맷이지만 A7 기기(최초의 Metal 지원 기기)에서는 지원되지 않으며 런타임 시 언패킹해야 합니다.
지원되는 모든 포맷에 대한 세부 정보는 지원되는 텍스처 포맷 레퍼런스 표를 참조하십시오.
Android에서는 텍스처 포맷 지원이 복잡합니다. 다른 하위 타겟으로 여러 애플리케이션 버전을 빌드해야 할 수 있습니다.
Player Settings에서 기본 포맷을 선택할 수 있습니다. 옵션은 ASTC, ETC2, ETC입니다(RGB의 경우 ETC1, RGBA의 경우 ETC2). 다양한 설정이 상호 작용하는 방법에 대한 자세한 내용은 텍스처 압축 설정을 참조하십시오.
LDR RGB 및 RGBA 텍스처의 경우, OpenGL ES 3.1 또는 Vulkan을 지원하는 대부분의 최신 Android GPU는 다음과 같은 ASTC 포맷도 지원합니다. Adreno 4xx/Snapdragon 415(2015) 이후의 Qualcomm GPU, Mali T624(2012) 이후의 ARM GPU, Tegra K1(2014) 이후의 NVIDIA GPU, GX6250(2014) 이후의 PowerVR GPU.
구형 기기에 대한 지원이 필요하거나 크런치 압축을 추가하려는 경우, Vulkan 또는 OpenGL ES 3.0을 실행하는 모든 GPU가 ETC2 포맷을 지원합니다. 결과로 생성되는 이미지 품질은 상당히 높으며 1–4개 컴포넌트 텍스처 데이터를 지원합니다. 더 구형인 기기에서도 일반적으로 ETC 포맷만 사용할 수 있습니다. 단점은 직접 알파 채널 지원이 없다는 것입니다. 스프라이트의 경우 Unity는 텍스처를 두 개의 ETC1 텍스처(하나는 RGB용, 다른 하나는 알파용)로 분할하여 ETC1 압축을 사용할 수 있는 옵션을 제공합니다. 이를 활성화하려면 스프라이트 아틀라스를 임포트할 때 텍스처에 대한 Android 전용 Split Alpha Channel 옵션을 활성화합니다. 스프라이트 셰이더는 두 텍스처를 모두 샘플링하여 최종 결과로 결합합니다.
ASTC 포맷을 지원하지 않는 구형 Android 기기의 경우 텍스처는 압축되지 않은 RGBA 32비트 포맷으로 압축 해제됩니다. 이렇게 하면 메모리 사용량이 증가하고 CPU에서 압축 풀기가 느려질 수 있습니다.
HDR 텍스처의 경우 ASTC HDR이 Android 기기에서 사용할 수 있는 유일한 압축 포맷입니다. ASTC HDR에는 Vulkan 또는 GL_KHR_texture_compression_astc_hdr 지원이 필요합니다. ASTC는 가장 유연한 포맷입니다. 기기가 ASTC HDR을 지원하지 않는 경우 텍스처는 알파 채널 사용에 따라 런타임 시 RGB9e5 또는 RGBA Half로 압축 해제됩니다.
ASTC HDR을 지원하지 않는 기기의 경우, Vulkan, Metal, OpenGL ES 3.0을 실행하는 모든 기기는 알파 채널이 없는 텍스처에 적합한 RGB9e5를 지원합니다. 알파 채널 또는 더 광범위한 지원이 필요한 경우 RGBA Half를 사용하십시오. 이는 RGB9e5보다 두 배 더 많은 메모리를 사용합니다.
애플리케이션을 Google Play에 배포하려는 경우, 텍스처 압축 타게팅을 사용하는 것이 가장 좋습니다.
지원되는 모든 포맷에 대한 세부 정보는 지원되는 텍스처 포맷 레퍼런스 표를 참조하십시오.