Unity 에디터는 JPEG 또는 PNG와 같은 여러 일반 포맷의 텍스처 소스 파일을 가져올 수 있습니다. 그러나 GPU는 런타임 시 이러한 포맷을 사용하지 않습니다. 대신 메모리 사용량과 샘플링 작업 속도에 최적화된 다양한 전문 포맷을 사용합니다.
임포트 설정에서 텍스처 에셋의 텍스처 압축 포맷을 설정할 수 있습니다. 프로젝트에 텍스처 에셋을 추가하면 Unity 에디터가 각 빌드 타겟에 적합한 압축 포맷을 자동으로 선택합니다. 하지만 대부분의 플랫폼은 여러 텍스처 압축 포맷을 지원합니다.
텍스처 압축 포맷은 로드 시간, GPU 프레임 시간, 메모리 사용량, 화질, 빌드 크기, 압축 시간에 영향을 줄 수 있습니다. 따라서 이 설정을 변경하기 전에 이러한 주제에 대해 이해하고 있어야 합니다.
이 페이지는 다음에 관한 정보를 제공합니다.
텍스처 에셋 임포트 설정에 대한 일반적인 내용은 텍스처 임포트 설정을 참조하십시오. 각 플랫폼에 대한 권장, 기본 및 지원 텍스처 압축 포맷에 대한 자세한 내용은 [플랫폼별 권장, 기본 및 지원 텍스처 압축 포맷
](class-TextureImporterOverride.html)을 참조하십시오.
픽셀당 비트(bpp)는 단일 텍스처 픽셀에 필요한 스토리지 용량입니다. bpp 값이 더 낮은 텍스처는 디스크와 메모리를 더 적게 차지합니다. bpp 값이 낮으면 GPU가 텍스처 픽셀을 읽는 데 더 적은 메모리 대역폭을 사용합니다. GPU 메모리 대역폭은 종종 프레임 속도 병목 현상을 유발할 수 있으므로, 텍스처 압축을 사용하면 이러한 문제를 방지할 수 있습니다.
텍스처 에셋의 화질이 높을수록 픽셀당 비트가 더 높으며, 그에 따라 빌드 크기, 로드 시간, 런타임 메모리 사용량이 늘어납니다. 모든 텍스처 압축 포맷에는 어느 정도 손실이 있습니다. 압축되지 않은 텍스처는 최고의 품질을 제공하지만, 픽셀당 비트도 가장 높습니다. 모든 텍스처 압축 포맷은 제각기 서로 다른 장단점을 지니고 있습니다.
일반적으로 디스크에서 최상의 런타임 성능과 크기를 달성하려면 대부분의 텍스처 에셋에 대해 타겟 기기에서 지원하고 원하는 화질에 대한 픽셀당 비트 수가 가장 적은 텍스처 압축 포맷을 선택해야 합니다.
특정 목적으로 텍스처를 사용하는 경우 개별 설정을 변경할 수 있습니다. 예를 들어 하나의 채널만 있는 텍스처를 마스크로 사용하는 경우 BC4 포맷을 선택하면 파일 크기를 줄이면서 품질은 그대로 유지할 수 있습니다. 픽셀 퍼펙트 UI용 텍스처를 사용하는 경우에는 압축을 하지 않을 수도 있습니다.
타겟 플랫폼과 기기가 지원하는 포맷을 선택하십시오. Unity가 지원하지 않는 압축 포맷을 사용하여 텍스처를 로드하면 해당 플랫폼에 대한 기본 비압축 포맷으로 압축 해제한 후 압축 해제된 복사본을 압축된 원본 텍스처와 함께 메모리에 저장합니다. 이러한 작업은 텍스처 로드 시간을 늘리고 추가 메모리를 사용합니다. Unity가 기기가 지원하는 압축 포맷을 사용하여 텍스처를 로드하면 GPU는 변환 작업 없이도 해당 데이터를 사용할 수 있습니다.
크런치는 DXT 또는 ETC 압축에 기반한 압축 포맷으로, 추가 VBR(Variable Bit Rate) 압축을 제공합니다. Unity가 크런치 압축 텍스처를 로드하면 CPU의 DXT 또는 ETC로 해당 텍스처를 압축 해제한 후 DXT 또는 ETC 압축 텍스처 데이터를 GPU에 업로드합니다.
크런치 압축은 텍스처가 가능한 가장 적은 디스크 공간을 사용하는 데 도움이 되지만, 런타임 메모리 사용량에는 영향을 주지 않습니다. 크런치 텍스처는 압축하는 데 시간이 오래 걸리지만, 런타임 시점의 압축 해제는 매우 빠릅니다. 크런치 압축의 손실을 조정하여 파일 크기와 품질 간의 균형을 맞출 수 있습니다.
빌드 크기에 특별한 관심이 있고 크런치가 타겟 플랫폼에서 지원된다면 크런치 압축을 추가해 보십시오.
텍스처 임포트 설정과 플랫폼별 오버라이드 설정 방법에 대한 자세한 내용은 텍스처 임포트 설정을 참조하십시오.