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