Version: 2020.3
언어: 한국어
텍스처 압축 포맷
렌더 텍스처

플랫폼별 권장, 기본 및 지원 텍스처 압축 포맷

이 페이지는 다음에 관한 정보를 제공합니다.

이 페이지에는 콘솔 플랫폼에 대한 정보는 포함되지 않습니다. 콘솔 플랫폼에 대한 정보는 플랫폼별 문서를 참조하십시오.

텍스처 압축 포맷에 대한 개요는 텍스처 압축 포맷을 참조하십시오. 텍스처 임포트 설정과 플랫폼별 오버라이드 설정 방법에 대한 자세한 내용은 텍스처 임포트 설정을 참조하십시오.

용어

이 페이지에서는 다음 용어를 사용합니다.

  • 픽셀당 비트(bpp)는 단일 텍스처 픽셀에 필요한 스토리지 용량입니다. bpp 값이 더 낮은 텍스처는 디스크와 메모리를 더 적게 차지합니다. bpp 값이 낮으면 GPU가 캐시에 더 많은 픽셀을 저장할 수 있으므로 텍스처 액세스 속도가 향상됩니다.
  • LDR(Low Dynamic Range)은 컬러가 개념적으로 0.0(검정) 값과 1.0(흰색) 값 사이에 있는 가장 일반적인 이미지를 나타냅니다. 대부분의 이미지 파일(예: PNG, JPG)은 다이나믹 레인지가 낮습니다.
  • HDR(High Dynamic Range)은 컬러가 0–1보다 더 높은 범위를 가질 수 있는 특수한 이미지 및 텍스처 포맷을 의미합니다. .exr 또는 .hdr과 같은 이미지 파일 포맷이 HDR 이미지 데이터에 자주 사용됩니다. 런타임 시점과 GPU에서 정확도, 범위 및 메모리 사용량 간에 서로 장단점이 있는 여러 HDR 포맷을 사용할 수 있습니다.
  • RGB는 빨간색, 초록색, 파란색을 결합하여 컬러 배열을 재현하는 컬러 모델입니다.
  • RGBA는 블렌딩 및 불투명도 변경을 지원하는 알파 채널이 있는 RGB의 버전입니다.
  • VBR(Variable Bit Rate)은 픽셀당 비트가 고정 값이 아니고, 대신에 실제 콘텐츠에 기반한다는 의미입니다. VBR은 크런치 압축과 디스크의 텍스처 크기에만 적용됩니다. 메모리 크기는 기본 텍스처 포맷(예: RGB Crunched DXT1의 경우 RGB Compressed DXT1)을 사용할 때와 동일합니다.

플랫폼별 권장 텍스처 압축 포맷

데스크톱

BC7 및 BC6H 포맷 지원이 보장되는 DirectX 11 이상 등급의 GPU가 탑재된 기기의 경우 권장되는 압축 포맷 선택은 다음과 같습니다. RGB 텍스처 - DXT1(4비트/픽셀). RGBA 텍스처 - BC7(품질이 높을수록 압축 속도가 느림) 또는 DXT5(압축 속도가 빠름), 둘 다(8비트/픽셀). HDR 텍스처 - BC6H(8비트/픽셀). PC에서 DirectX 10 등급의 GPU(2010년 이전의 NVIDIA GPU, 2009년 이전의 AMD, 2012년 이전의 Intel)를 지원해야 하는 경우 이러한 GPU는 BC7 또는 BC6H를 지원하지 않으므로 BC7 대신 DXT5가 선호됩니다.

모든 지원 포맷에 대한 자세한 내용은 지원 텍스처 압축 포맷 레퍼런스 표를 참조하십시오.

iOS 및 tvOS

A8 칩(2014) 이상을 사용하는 Apple 기기의 경우 RGB 및 RGBA 텍스처에 권장되는 텍스처 압축 포맷은 ATSC입니다. 이 포맷을 사용하면 8비트/픽셀(4x4 블록 크기)에서 0.89비트/픽셀(12x12 블록 크기)에 이르기까지 세분화된 텍스처 품질과 크기를 선택할 수 있습니다. 구형 기기에 대한 지원이 필요하거나 추가 크런치 압축이 필요한 경우 Apple 기기는 A7 칩(2013)부터 ETC/ETC2 포맷을 지원합니다. 더 오래된 구형 기기의 경우 PVRTC 압축 포맷을 사용해야 합니다. iOS에서 Unity의 기본 텍스처 압축 포맷은 가능한 가장 광범위한 호환성을 제공하는 PVRTC입니다. ASTC가 선호되지만, A7 기기(최초의 Metal 지원 기기)에서는 지원되지 않으며 런타임 시점에 압축 해제됩니다.

모든 지원 포맷에 대한 자세한 내용은 지원 텍스처 압축 포맷 레퍼런스 표를 참조하십시오.

Android

Android의 텍스처 압축 지원은 복잡하므로, 다양한 하위 타겟으로 여러 애플리케이션 버전을 빌드해야 할 수 있습니다.

앱이 제한된 범위의 텍스처 압축 포맷을 지원하는 특정 하드웨어를 대상으로 하는 경우를 제외하고 다양한 장단점을 지닌 여러 압축 및 비압축 포맷 중에서 선택할 수 있습니다.

LDR RGB 및 RGBA 텍스처의 경우 대부분의 최신 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 또는 Metal 또는 OpenGL ES 3.0을 실행하는 모든 GPU가 ETC2 포맷을 지원합니다. 결과 이미지 품질은 상당히 높으며 1–4개 컴포넌트 텍스처 데이터를 지원합니다. OpenGL ES 2 기기는 ETC2 포맷을 지원하지 않으므로 Unity는 런타임 시점에 ETC2 폴백이 지정하는 포맷으로 텍스처를 압축 해제합니다. 더 오래된 구형 기기의 경우 일반적으로 ETC 포맷만 사용할 수 있습니다. 이 경우 직접 알파 채널 지원이 없다는 단점이 있습니다. 스프라이트의 경우 Unity는 두 개의 ETC1 텍스처(RGB용 하나, 알파용 하나)로 텍스처를 분할하여 ETC1 압축을 사용하는 옵션을 제공합니다. 이를 활성화하려면 스프라이트 아틀라스를 임포트할 때 텍스처에 대한 Android별 분할 알파 채널 옵션을 활성화하십시오. 스프라이트 셰이더는 두 텍스처를 모두 샘플링하여 최종 결과로 결합합니다. HDR 텍스처의 경우 Android 기기에서 사용할 수 있는 유일한 압축 포맷은 ASTC HDR입니다. ASTC HDR에는 Vulkan 또는 GL_KHR_texture_compression_astc_hdr 지원이 필요합니다. ASTC가 가장 유연한 포맷입니다.

ASTC HDR을 지원하지 않는 기기의 경우 Vulkan, Metal 또는 OpenGL ES 3.0을 실행하는 모든 기기는 알파 채널이 없는 텍스처에 적합한 RGB9e5를 지원합니다. 알파 채널 또는 더 광범위한 지원이 필요한 경우 RGBA Half를 사용하십시오. 이 포맷은 RGB9e5보다 두 배 더 많은 메모리를 사용합니다.

모든 지원 포맷에 대한 자세한 내용은 지원 텍스처 압축 포맷 레퍼런스 표를 참조하십시오.

플랫폼별 기본 텍스처 압축 포맷

다음 표는 각 플랫폼에 사용된 디폴트 포맷을 보여줍니다.

플랫폼 컬러 모델 없음 보통 품질(기본값) 높은 품질 낮은 품질(더 높은 성능)
Windows, Linux, macOS RGB RGB 24비트 RGB Compressed DXT1 RGB(A) Compressed BC7 RGB Compressed DXT1
RGBA RGBA 32비트 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비트 RGB Compressed DXT1 RGB Compressed DXT1 RGB Compressed DXT1
RGBA RGBA 32비트 RGBA Compressed DXT5 RGBA Compressed DXT5 RGBA Compressed DXT5
Android(빌드 설정에서 Don’t override를 활성화한 경우에만 해당) RGB RGB 24비트 RGB Compressed ETC RGB Compressed ETC RGB Compressed ETC
RGBA RGBA 32비트 RGBA Compressed ETC2 RGBA Compressed ETC2 RGBA Compressed ETC2
iOS RGB RGB 24비트 RGB Compressed PVRTC 4비트 RGB Compressed PVRTC 4비트 RGB Compressed PVRTC 2비트
RGBA RGBA 32비트 RGBA Compressed PVRTC 4비트 RGBA Compressed PVRTC 4비트 RGBA Compressed PVRTC 2비트
tvOS RGB RGB 24비트 RGB Compressed ASTC 6x6 블록 RGB Compressed ASTC 4x4 블록 RGB Compressed ASTC 8x8 블록
RGBA RGBA 32비트 RGBA Compressed ASTC 6x6 블록 RGBA Compressed ASTC 4x4 블록 RGBA Compressed ASTC 8x8 블록
Default RGBA RGBA 32비트 RGBA 16비트 RGBA 16비트 RGBA 16비트

플랫폼별 지원 텍스처 압축 포맷

아래 표에는 Unity에서 사용할 수 있는 각 압축 포맷과 해당 압축 포맷을 지원하는 플랫폼이 나와 있습니다.

텍스처 압축 포맷 설명 채널 Quality 픽셀당 비트 1024x1024 텍스처 크기(MB) Windows Mac Linux Android iOS & tvOS WebGL
RGB(A) Compressed BC7 압축된 RGB 또는 RGBA RGB 또는 RGBA 높음 8 1 예(1) 예(1) 지원 아니요 아니요 아니요
RGBA Compressed DXT5 압축된 RGBA(BC3라고도 불림) RGBA 중간 8 1 지원 지원 지원 아니요(3) 아니요 부분적 지원(2)
RGBA Crunched DXT5 압축된 RGBA, 추가 디스크 크런치 압축 포함 RGBA 낮음-중간 가변 가변 지원 지원 지원 아니요(3) 아니요 부분적 지원(2)
RGBA 64비트 압축되지 않은 RGBA, 정밀도가 매우 높음 RGBA 매우 높음 64 8 지원 지원 지원 부분적 지원(6) 지원 아니요
RGBA 32비트 압축되지 않은 RGBA RGBA 높음 32 4 지원 지원 지원 지원 지원 지원
RGBA 16비트 양자화된 RGBA RGBA 중간 16 2 지원 지원 지원 지원 지원 지원
RGB Compressed DXT1 압축된 RGB(BC1이라고도 불림) RGB 중간 4 0.5 지원 지원 지원 아니요(3) 아니요 부분적 지원(2)
RGB Crunched DXT1 압축된 RGB, 추가 디스크 크런치 압축 포함 RGB 낮음-중간 가변 가변 지원 지원 지원 아니요(3) 아니요 부분적 지원(2)
RGB 48비트 압축되지 않은 RGB, 정밀도가 매우 높음. GPU용 RGBA 64비트로 변환됩니다. RGB 매우 높음 48 디스크, 64 GPU 6 디스크, 8 GPU 지원 지원 지원 부분적 지원(6) 지원 아니요
RGB 24비트 압축되지 않은 RGB. GPU용 RGBA 32비트로 변환됩니다. RGB 높음 24 디스크, 32 GPU 3 디스크, 4 GPU 지원 지원 지원 지원 지원 지원
RGB 16비트 양자화된 RGB RGB 중간 16 2 지원 지원 지원 지원 지원 지원
RG Compressed BC5 압축된 2채널(RG) RG 높음 8 1 지원 지원 지원 아니요 아니요 아니요
RG 32비트 압축되지 않은 2채널(RG), 정밀도가 매우 높음 RG 매우 높음 32 4 지원 지원 지원 부분적 지원(6) 지원 아니요
R Compressed BC4 압축된 단일 채널(R) R 높음 4 0.5 지원 지원 지원 아니요 아니요 아니요
R 8 압축되지 않은 단일 채널(R) R 높음 8 1 지원 지원 지원 부분적 지원(5) 지원 부분적 지원(5)
R 16비트 압축되지 않은 단일 채널(R), 정밀도가 매우 높음 R 매우 높음 16 2 지원 지원 지원 부분적 지원(6) 부분적 지원(6) 아니요
알파 8 압축되지 않은 단일 채널(A) A 높음 8 1 지원 지원 지원 지원 지원 지원
RGBA Half HDR, 반정밀도(FP16) RGBA, –64k - +64k 범위 RGBA 높음 64 8 지원 지원 지원 부분적 지원(7) 지원 부분적 지원(7)
RGB Compressed BC6H HDR, 압축된 RGB, 0 - +64k 범위 RGB 높음 8 1 예(1) 예(1) 지원 아니요 아니요 아니요
RGB9e5 32비트 Shared Exponent Float HDR, 양자화된 RGB, 0 - +64k 범위 RGB 중간 32 4 지원 지원 지원 부분적 지원(4) 지원 부분적 지원(4)
RGB(A) Compressed ASTC 압축된 RGB 또는 RGBA, 블록 크기에 따라 크기와 품질이 달라짐 RGB 또는 RGBA 낮음-높음 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 아니요 아니요 아니요 부분적 지원(8) 예(10) 아니요
RGBA Compressed ETC2 압축된 RGBA RGBA 중간 8 1 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
RGBA Crunched ETC2 압축된 RGBA, 추가 디스크 크런치 압축 포함 RGBA 낮음-중간 가변 가변 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
RGB + 1비트 Alpha Compressed ETC2 4비트 압축된 RGBA, 완전히 불투명하거나 완전히 투명한 알파 값 포함 RGBA 중간 4 0.5 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
RGBA Compressed PVRTC 4비트 압축된 RGBA, 텍스처가 사각형이어야 함 RGBA 중간 4 0.5 아니요 아니요 아니요 아니요(12) 지원 아니요
RGBA Compressed PVRTC 2비트 압축된 RGBA, 텍스처가 사각형이어야 함 RGBA 낮음 2 0.25 아니요 아니요 아니요 아니요(12) 지원 아니요
RGB Compressed ETC2 압축된 RGB RGB 중간 4 0.5 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
RGB Compressed ETC 압축된 RGB RGB 낮음 4 0.5 아니요 아니요 아니요 지원 지원 아니요
RGB Crunched ETC 압축된 RGB, 추가 디스크 크런치 압축 포함 RGB 낮음 가변 가변 아니요 아니요 아니요 지원 지원 아니요
RGB Compressed PVRTC 4비트 압축된 RGB, 텍스처가 사각형이어야 함 RGB 중간 4 0.5 아니요 아니요 아니요 아니요(12) 지원 아니요
RGB Compressed PVRTC 2비트 압축된 RGB, 텍스처가 사각형이어야 함 RGB 낮음 2 0.25 아니요 아니요 아니요 아니요(12) 지원 아니요
RG Compressed EAC 8비트 압축된 2채널(RG) RG 높음 8 1 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
R Compressed EAC 4비트 압축된 단일 채널(R) R 높음 4 0.5 아니요 아니요 아니요 부분적 지원(9) 지원 아니요
RGB(A) Compressed ASTC HDR HDR, 압축된 RGB 또는 RGBA, 블록 크기에 따라 크기와 품질이 달라짐 RGB 또는 RGBA 낮음-높음 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 아니요 아니요 아니요 부분적 지원(11) 부분적 지원(11) 아니요

참고:

  1. 이전 DX11 등급 GPU에서, 또는 OpenGL 사용 시 macOS에서는 예외입니다. 지원되지 않는 경우 로드 시 BC6H 텍스처는 RGBA Half로 압축 해제되고, BC7 텍스처는 RGBA32로 압축 해제됩니다.
  2. sRGB DXT를 지원하지 않는 웹 브라우저에서 리니어 렌더링을 사용하면 로드 시 텍스처가 RGBA32로 압축 해제됩니다.
  3. NVIDIA Tegra GPU가 탑재된 Android 기기는 예외입니다. 이 기기는 DXT/BC 포맷을 지원합니다.
  4. OpenGL ES 2.0/WebGL 1에서는 예외입니다.
  5. OpenGL ES 2.0/WebGL 1에서는 GL_EXT_texture_rg 확장 지원이 필요합니다.
  6. Android에서는 GL_EXT_texture_norm16 또는 해당 Vulkan 기능이 필요합니다.
  7. OpenGL ES 2.0/WebGL 1에서는 OES_texture_half_float 확장 지원이 필요합니다.
  8. Vulkan 또는 GL_KHR_texture_compression_astc_ldr OpenGL ES 확장이 필요합니다.
  9. OpenGL ES 2.0에서는 예외입니다. ETC2 텍스처는 Android 빌드 설정 또는 Android 탭에서 플랫폼별 오버라이드에 지정된 ETC2 폴백 포맷으로 압축 해제됩니다.
  10. Apple A7 칩 탑재 기기(2013)에서는 예외입니다.
  11. Android: GL_KHR_texture_compression_astc_hdr 확장이 필요합니다. iOS: A13 이상 칩(2019)이 필요합니다. 지원되지 않는 경우 텍스처는 RGB9E5 포맷으로 압축 해제되어 알파 채널이 손실됩니다.
  12. Imagination PowerVR GPU가 탑재된 Android 기기는 예외입니다. 이 기기는 PVRTC 포맷을 지원합니다.
텍스처 압축 포맷
렌더 텍스처