이 페이지에서는 Android에만 해당되는 Texture Overrides 에 대해 자세하게 설명합니다. 일반적인 텍스처 오버라이드는 여기를 참조하십시오.
이 페이지에 포함된 정보는 독자가 DXT 및 ETC 텍스처 압축, OpenGL ES 및 Android 개발에 대한 실무 지식을 가지고 있다고 가정합니다.
텍스처 압축과 OpenGL ES에 대한 자세한 내용은 다음 위키피디아 페이지에서 확인할 수 있습니다.
Texture format | Internal representation |
---|---|
RGB Compressed DXT1 | 압축된 RGB 텍스처입니다. Nvidia Tegra에서 지원합니다. 픽셀당 4비트(256x256 텍스처당 32KB)입니다. |
RGB Crunched DXT1 | 압축된 RGB 텍스처입니다. Nvidia Tegra에서 지원합니다. 크런치는 DXT 텍스처 압축에 추가되는 손실 압축 포맷입니다. CPU에서 텍스처를 DXT1로 압축을 푼 후 런타임 시점에 GPU에 업로드합니다. 크런치는 일반 DXT1 압축보다 더 작은 텍스처를 얻을 수 있지만, 품질이 더 낮습니다. 크런치 텍스처는 압축하는 데 시간이 오래 걸릴 수 있지만 런타임 시점에 압축을 푸는 속도가 매우 빠릅니다. 픽셀당 4비트(출력 크기는 텍스처에 따라 다르고, 256x256 텍스처당 1KB 이상)입니다. |
RGBA Compressed DXT5 | 압축된 RGBA 텍스처입니다. Nvidia Tegra에서 지원합니다. 픽셀당 8비트(256x256 텍스처당 64KB)입니다. |
RGBA Crunched DXT5 | 압축된 RGBA 텍스처입니다. Nvidia Tegra에서 지원합니다. 크런치는 DXT 텍스처 압축에 추가되는 손실 압축 포맷입니다. CPU에서 텍스처를 DXT5로 압축을 푼 후 런타임 시점에 GPU에 업로드합니다. 크런치 압축을 사용하여 일반 DXT5 압축보다 훨씬 더 작은 텍스처를 얻을 수 있지만, 품질이 더 낮습니다. 크런치 텍스처는 압축하는 데 시간이 오래 걸릴 수 있지만 런타임 시점에 압축을 푸는 속도가 매우 빠릅니다. 픽셀당 8비트(출력 크기는 텍스처에 따라 다르고, 256x256 텍스처당 1KB 이상)입니다. |
RGB Compressed ETC 4 bits | 압축된 RGB 텍스처로입니다. Unity 에디터에서 사용하는 Android 프로젝트의 기본 텍스처 포맷입니다. ETC_RGB4는 OpenGL ES 2.0의 일부이고 모든 OpenGL ES 2.0 GPU에서 지원합니다. 알파는 지원하지 않습니다. 픽셀당 4비트(256x256 텍스처당 32KB)입니다. |
RGB Crunched ETC | 압축된 RGB 텍스처입니다. 크런치는 ETC 텍스처 압축에 추가되는 손실 압축 포맷입니다. CPU에서 텍스처를 ETC_RGB4로 압축을 푼 후 런타임 시점에 GPU에 업로드합니다. 크런치는 일반 ETC_RGB4 압축보다 더 작은 텍스처를 얻을 수 있지만, 품질이 더 낮습니다. 크런치 텍스처는 압축하는 데 시간이 오래 걸릴 수 있지만 런타임 시점에 압축을 푸는 속도가 매우 빠릅니다. ETC_RGB4는 OpenGL ES 2.0의 일부이고 모든 OpenGL ES 2.0 GPU에서 지원합니다. 알파는 지원하지 않습니다. 픽셀당 4비트(출력 크기는 텍스처에 따라 다르고, 256x256 텍스처당 1KB 이상)입니다. |
RGB Compressed ETC2 4 bits | 압축된 RGB 텍스처입니다. ETC2는 OpenGL ES 3.0의 일부이고 모든 OpenGL ES 3.0 GPU에서 지원합니다. 픽셀당 4비트(256x256 텍스처당 32KB)입니다. |
RGB + 1-bit Alpha Compressed ETC2 4 bits | 1비트 펀치스루 알파가 있는 압축된 RGB 텍스처입니다. ETC2는 OpenGL ES 3.0의 일부이고 모든 OpenGL ES 3.0 GPU에서 지원합니다. 픽셀당 4비트(256x256 텍스처당 32KB)입니다. |
RGBA Compressed ETC2 8 bits | 압축된 RGBA 텍스처입니다. 모든 OpenGL ES 3.0 GPU에서 지원합니다. 256x256 텍스처의 경우 64KB입니다. |
RGBA Crunched ETC2 | 압축된 RGBA 텍스처입니다. 크런치는 ETC 텍스처 압축에 추가되는 손실 압축 포맷입니다. CPU에서 텍스처를 ETC2_RGBA8로 압축을 푼 후 런타임 시점에 GPU에 업로드합니다. 크런치 압축을 사용하여 일반 ETC2_RGBA8 압축보다 훨씬 더 작은 텍스처를 얻을 수 있지만, 품질이 더 낮습니다. 크런치 텍스처는 압축하는 데 시간이 오래 걸릴 수 있지만 런타임 시점에 압축을 푸는 속도가 매우 빠릅니다. 모든 OpenGL ES 3.0 GPU에서 지원합니다. 픽셀당 8비트(출력 크기는 텍스처에 따라 다르고, 256x256 텍스처당 1KB 이상)입니다. |
RGB Compressed PVRTC 2 bits | 압축된 RGB 텍스처입니다. Imagination PowerVR GPU에서 지원합니다. 픽셀당 2비트(256x256 텍스처당 16KB)입니다. |
RGBA Compressed PVRTC 2 bits | 압축된 RGBA 텍스처입니다. Imagination PowerVR GPU에서 지원합니다. 픽셀당 2비트(256x256 텍스처당 16KB)입니다. |
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 텍스처당 32KB). |
RGBA Compressed ATC 8 bits | 압축된 RGBA 텍스처. Qualcomm Snapdragon에서 지원. 픽셀당 8비트(256x256 텍스처당 64KB). |
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 |
압축된 RGB 텍스처입니다. 모든 OpenGL ES 3.2 및 OpenGL ES 3.1+AEP GPU와 일부 OpenGL ES 3.0 GPU에서 지원합니다. 이 압축 타입은 고정 128비트 블록 크기를 사용하고, 픽셀 블록 크기(4x4 to 12x12)에 따라 픽셀당 8비트 ~ 0.89비트를 사용합니다. 압축된 텍스처 크기는 256x256 텍스처당 64KB(4x4 블록, 최고 품질)부터 256x256 텍스처당 7.6KB(12x12 블록, 최고 압축률)까지 다양합니다. |
RGB 16 bit | 알파가 없는 65K 컬러입니다. 압축된 포맷보다 메모리를 더 많이 사용하지만, 그레디언트가 없는 산뜻한 텍스처나 UI에 더 적합할 수 있습니다. 256x256 텍스처당 128KB입니다. |
RGB 24 bit | 알파가 없는 트루컬러입니다. 256x256 텍스처당 192KB입니다. |
Alpha 8 bit | 컬러가 없는 고품질 알파 채널입니다. 256x256 텍스처당 64KB입니다. |
RGBA 16 bit | 저품질 트루컬러. 알파 채널이 있는 텍스처의 기본 압축. 256x256 텍스처당 128KB. |
RGBA 32 bit | 알파가 있는 트루컬러입니다. 알파가 있는 텍스처의 최고 품질 압축입니다. 256x256 텍스처당 256KB입니다. |
Compression Quality | 가장 빠른 성능을 얻으려면 Fast를 선택하고, 최고 이미지 품질을 얻으려면 Best를 선택하고, 둘의 균형을 맞추려면 Normal을 선택합니다. |
앱이 사용되는 텍스처 압축 포맷을 지원하지 않는 기기에 설치된 경우 Unity는 텍스처를 RGBA 32로 압축 해제한 후 런타임 시점에 기기의 메모리에 다른 압축 텍스처와 함께 저장합니다. 이 경우 Unity가 텍스처를 압축 해제한 후 사용된 두 개의 텍스처 버전(압축, 비압축)을 저장해야 하므로 로딩 시간이 늘어나고 메모리 사용량이 증가합니다. 또한 구형 저사양 기기의 경우 렌더링 성능이 저하될 수 있습니다.
앱이 Nvidia Tegra 같은 특정 하드웨어를 대상으로 하지 않으면 ETC2 압축을 사용하십시오. ETC2는 알파 채널이 있는 텍스처와 알파 채널이 없는 텍스처를 지원하고, 모든 OpenGL ES 3 기기도 이를 지원합니다. 소프트웨어 압축 해제를 피하려면 다음 절차를 따르십시오.
OpenGL ES 2 및 OpenGL ES 3 기기를 타게팅하려면 두 개의 다른 APK를 만들고 퍼블리시해야 합니다. 다음 절차를 따르십시오.
다중 APK 파일 퍼블리싱에 대한 자세한 내용은 다음에 관한 Android 개발자 문서를 참조하십시오.
OpenGL ES 2가 타겟인 APK를 빌드할 때에는 ETC1 텍스처 압축을 사용할 수 있습니다.
OpenGL ES2를 타게팅하는 APK의 텍스처 압축 포맷으로 ETC1을 사용할 수 있습니다. Unity는 알파를 포함한 텍스처에 ETC1을 사용할 수 있습니다(단, 패킹 태그를 지정하여 스프라이트 아틀라스에 배치되고 빌드가 Android용이어야 함). 텍스처에 대해 Compress using ETC1 체크박스를 선택하여 이 설정을 사용할 수 있습니다. Unity는 결과 아틀라스를 알파가 없는 두 개의 텍스처로 분할한 다음 렌더 파이프라인의 마지막 부분에서 결합합니다.
알파 채널을 텍스처에 저장해야 하는 경우 모든 하드웨어 공급업체가 RGBA 16 비트 압축 포맷을 지원합니다.
2017–09–18 페이지 수정됨
Unity 2017.1에서 업데이트된 기능
Unity 2017.3에서 크런치 압축 포맷 업데이트