Version: 2021.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

ATSC는 A8 칩(2014) 이상을 사용하는 Apple 기기를 위해 RGB와 RGBA 텍스처에 권장되는 텍스처 포맷입니다. 이 포맷으로 8비트/픽셀(4x4 블록 크기)부터 0.89 비트/픽셀(12x12 블록 크기)까지 세분화된 레벨 상의 텍스처 품질과 크기를 선택할 수 있습니다. 구형 기기에 대한 지원이 필요한 경우 또는 크런치 압축을 추가하고자 할 경우 Apple 기기는 A7 칩(2013)부터 ETC/ETC2 포맷을 지원합니다. 그 이전 기기는 PVRTC 포맷을 사용합니다. iOS의 경우 플레이어 설정에서 기본 텍스처 포맷을 설정할 수 있습니다. PVRTC는 가장 광범위한 호환성을 제공합니다. ASTC는 선호되는 포맷이지만 A7 기기(최초의 Metal 지원 기기)에서는 지원되지 않으며 런타임 시 언패킹해야 합니다.

지원되는 모든 포맷에 대한 세부 정보는 지원되는 텍스처 포맷 레퍼런스 표를 참조하십시오.

Android

Android 상의 텍스처 포맷 지원은 복잡합니다. 다른 하위 타겟으로 몇 가지 애플리케이션 버전을 빌드해야 할 수도 있습니다.

플레이어 설정에서 기본 포맷을 선택할 수 있습니다. 옵션으로는 ASTC, ETC2, ETC (ETC1는 RGB용, ETC2는 RGBA용)가 있습니다. 텍스처 압축 설정에서 서로 다른 설정이 상호 작용하는 방법에 관한 자세한 내용을 참조할 수 있습니다.

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 컴포넌트 텍스처 데이터를 지원합니다. OpenGL ES 2 기기는 ETC2 포맷을 지원하지 않기 때문에 Unity는 런타임 시 ETC2 폴백 지정 포맷으로 텍스처를 압축 해제합니다. 그 이전의 기기에 대해서는 일반적으로 ETC 포맷만 사용 가능합니다. 단점은 직접적인 알파 채널 지원이 없다는 점입니다. 스프라이트의 경우 Unity에서 하나의 텍스처를 하나는 RGB용, 다른 하나는 알파용으로 이렇게 두 개의 ETC1 텍스처로 분할하여 ETC1 압축을 사용하는 옵션을 제공합니다. 이를 활성화하려면 스프라이트 아틀라스 임포트 시 텍스처에 Android 전용 알파 채널 분할 옵션을 활성화합니다. 스프라이트 셰이더는 두 텍스처를 샘플링하고 최종 결과로 결합합니다.

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보다 두 배 더 많은 메모리를 사용합니다.

지원되는 모든 포맷에 대한 세부 정보는 지원되는 텍스처 포맷 레퍼런스 표를 참조하십시오.

플랫폼별 기본 텍스처 포맷

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

플랫폼 컬러 모델 없음 보통 품질(기본값) 높은 품질 낮은 품질(더 높은 성능)
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 (설정 가능) RGB RGB 24비트 RGBA Compressed ASTC 6x6 블록
RGB Compressed ETC2
RGB Compressed ETC
RGBA Compressed ASTC 4x4 블록
RGB Compressed ETC2
RGB Compressed ETC
RGBA Compressed ASTC 8x8 블록
RGB Compressed ETC2
RGB Compressed ETC
RGBA RGBA 32비트 RGBA Compressed ASTC 6x6 블록
RGBA Compressed ETC2
RGBA Compressed ASTC 4x4 블록
RGBA Compressed ETC2
RGBA Compressed ASTC 8x8 블록
RGBA Compressed ETC2
iOS (설정 가능) RGB RGB 24비트 RGBA Compressed ASTC 6x6 블록
RGB Compressed PVRTC 4비트
RGBA Compressed ASTC 4x4 블록
RGB Compressed PVRTC 4비트
RGBA Compressed ASTC 8x8 블록
RGB Compressed PVRTC 2비트
RGBA RGBA 32비트 RGBA Compressed ASTC 6x6 블록
RGBA Compressed PVRTC 4비트
RGBA Compressed ASTC 4x4 블록
RGBA Compressed PVRTC 4비트
RGBA Compressed ASTC 8x8 블록
RGBA Compressed PVRTC 2비트
tvOS RGB RGB 24비트 RGBA Compressed ASTC 6x6 블록 RGBA Compressed ASTC 4x4 블록 RGBA 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)
RGB(A) Compressed BC7 압축된 RGB 또는 RGBA RGB 또는 RGBA 높음 8 1
RGBA Crunched DXT5 압축된 RGBA, 추가 디스크 크런치 압축 포함 RGBA 낮음-중간 가변 가변
RGBA 64비트 압축되지 않은 RGBA, 정밀도가 매우 높음 RGBA 매우 높음 64 8
RGBA 32비트 압축되지 않은 RGBA RGBA 높음 32 4
RGBA 16비트 양자화된 RGBA RGBA 중간 16 2
RGB Compressed DXT1 압축된 RGB(BC1이라고도 불림) RGB 중간 4 0.5
RGB Crunched DXT1 압축된 RGB, 추가 디스크 크런치 압축 포함 RGB 낮음-중간 가변 가변
RGB 48비트 압축되지 않은 RGB, 정밀도가 매우 높음. GPU용 RGBA 64비트로 변환됩니다. RGB 매우 높음 48 디스크, 64 GPU 6 디스크, 8 GPU
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
R Compressed BC4 압축된 단일 채널(R) R 높음 4 0.5
R 8 압축되지 않은 단일 채널(R) R 높음 8 1
R 16비트 압축되지 않은 단일 채널(R), 정밀도가 매우 높음 R 매우 높음 16 2
알파8 압축되지 않은 단일 채널(A) A 높음 8 1
RGBA Half HDR, half-precision (FP16) RGBA, –64k에서 +64k 범위 RGBA 높음 64 8
RGB Comressed BC6H HDR, 압축된 RGB, 0 - +64k 범위 RGB 높음 8 1
RGB9e5 32비트 Shared Exponent Float HDR, 양자화된 RGB, 0 - +64k 범위 RGB 중간 32 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
RGBA Compressed ETC2 압축된 RGBA RGBA 중간 8 1
RGBA Crunched ETC2 압축된 RGBA, 추가 디스크 크런치 압축 포함 RGBA 낮음-중간 가변 가변
RGB + 1-비트 알파 Compressed ETC2 4비트 압축된 RGBA, 완전히 불투명하거나 완전히 투명한 알파 값 포함 RGBA 중간 4 0.5
RGBA Compressed PVRTC 4비트 압축된 RGBA, 텍스처가 사각형이어야 함 RGBA 중간 4 0.5
RGBA Compressed PVRTC 2비트 압축된 RGBA, 텍스처가 사각형이어야 함 RGBA 낮음 2 0.25
RGB Compressed ETC2 압축된 RGB RGB 중간 4 0.5
RGB Compressed ETC 압축된 RGB RGB 낮음 4 0.5
RGB Crunched ETC 압축된 RGB, 추가 디스크 크런치 압축 포함 RGB 낮음 가변 가변
RGB Compressed PVRTC 4비트 압축된 RGB, 텍스처가 사각형이어야 함 RGB 중간 4 0.5
RGB Compressed PVRTC 2비트 압축된 RGB, 텍스처가 사각형이어야 함 RGB 낮음 2 0.25
RG Compressed EAC 8비트 압축된 2채널(RG) RG 높음 8 1
R Compressed EAC 4비트 압축된 단일 채널(R) R 높음 4 0.5
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

플랫폼별 지원되는 텍스처 포맷

아래의 표는 Unity에서 사용 가능한 각 텍스처 포맷과 지원되는 플랫폼을 표시합니다.

텍스처 포맷 Windows macOS Linux Android iOS & tvOS WebGL (데스크톱용 브라우저) WebGL (iOS 및 Android용 브라우저)
RGB(A) Compressed BC7 지원(1) 지원(1) 지원 지원 안 함 지원 안 함 지원(1) 지원 안 함
RGBA Compressed DXT5 지원 지원 지원 지원 안 함(3) 지원 안 함 부분적 지원(2) 지원 안 함
RGBA Crunched DXT5 지원 지원 지원 지원 안 함(3) 지원 안 함 부분적 지원(2) 지원 안 함
RGBA 64비트 지원 지원 지원 부분적 지원(6) 지원 지원 안 함 지원 안 함
RGBA 32비트 지원 지원 지원 지원 지원 지원 지원
RGBA 16비트 지원 지원 지원 지원 지원 지원 지원
RGB Compressed DXT1 지원 지원 지원 지원 안 함(3) 지원 안 함 부분적 지원(2) 지원 안 함
RGB Crunched DXT1 지원 지원 지원 지원 안 함(3) 지원 안 함 부분적 지원(2) 지원 안 함
RGB 48비트 지원 지원 지원 부분적 지원(6) 지원 지원 안 함 지원 안 함
RGB 24비트 지원 지원 지원 지원 지원 지원 지원
RGB 16비트 지원 지원 지원 지원 지원 지원 지원
RG Compressed BC5 지원 지원 지원 지원 안 함 지원 안 함 지원 지원 안 함
RG 32비트 지원 지원 지원 부분적 지원(6) 지원 지원 안 함 지원 안 함
R Compressed BC4 지원 지원 지원 지원 안 함 지원 안 함 지원 지원 안 함
R 8 지원 지원 지원 부분적 지원(5) 지원 부분적 지원(5) 부분적 지원(5)
R 16비트 지원 지원 지원 부분적 지원(6) 부분적 지원(6) 지원(14) 지원(14)
알파8 지원 지원 지원 지원 지원 지원 지원
RGBA Half 지원 지원 지원 부분적 지원(7) 지원 부분적 지원(7) 부분적 지원(7)
RGB Comressed BC6H 지원(1) 지원(1) 지원 지원 안 함 지원 안 함 지원(1) 지원 안 함
RGB9e5 32비트 Shared Exponent Float 지원 지원 지원 부분적 지원(4) 지원 부분적 지원(4) 부분적 지원(4)
RGB(A) Compressed ASTC 지원 안 함 지원 안 함 지원 안 함 부분적 지원(8) 지원(10) 지원 안 함 지원(13 & 10)
RGBA Compressed ETC2 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
RGBA Crunched ETC2 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
RGB + 1-비트 알파 Compressed ETC2 4비트 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
RGBA Compressed PVRTC 4비트 지원 안 함 지원 안 함 지원 안 함 지원 안 함(12) 지원 지원 안 함 지원 안 함
RGBA Compressed PVRTC 2비트 지원 안 함 지원 안 함 지원 안 함 지원 안 함(12) 지원 지원 안 함 지원 안 함
RGB Compressed ETC2 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
RGB Compressed ETC 지원 안 함 지원 안 함 지원 안 함 지원 지원 지원 안 함 지원
RGB Crunched ETC 지원 안 함 지원 안 함 지원 안 함 지원 지원 지원 안 함 지원
RGB Compressed PVRTC 4비트 지원 안 함 지원 안 함 지원 안 함 지원 안 함(12) 지원 지원 안 함 지원 안 함
RGB Compressed PVRTC 2비트 지원 안 함 지원 안 함 지원 안 함 지원 안 함(12) 지원 지원 안 함 지원 안 함
RG Compressed EAC 8비트 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
R Compressed EAC 4비트 지원 안 함 지원 안 함 지원 안 함 부분적 지원(9) 지원 지원 안 함 지원
RGB(A) Compressed ASTC HDR 지원 안 함 지원 안 함 지원 안 함 부분적 지원(11) 부분적 지원(11) 지원 안 함 부분적 지원(11)

참고:

  1. WebGL 또는 OpenGL 사용 시 사전 DX11 레벨 GPU 또는 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)이 필요합니다.WebGL: WEBGL_compressed_texture_astc 확장과 HDR 프로파일이 필요합니다. 지원되지 않는 경우 텍스처는 RGB9E5 포맷으로 압축 해제되며 알파 채널이 손상됩니다.
  12. Imagination PowerVR GPU가 탑재된 Android 기기는 예외입니다. 이 기기는 PVRTC 포맷을 지원합니다.
  13. WEBGL_compressed_texture_astc 확장이 필요합니다.
  14. EXT_texture_norm16 확장과 WebGL 2가 필요합니다.
텍스처 포맷
밉맵