텍스쳐를 임포트할 때 메모리와 대역폭이 제한되어 있기 때문에 엔진에서 텍스쳐를 압축해줍니다
고해상도 텍스쳐는 엔진에서 압축하는 시간이 지연되는 이슈[^1]가 발생하기도 합니다
[^1] Defer compression
을 비활성화하면 임포트할 때 바로 압축이 되지 않고 직접 저장 선택 시 압축이 되어 고해상도 텍스쳐를 임포트할 때 지연되는 시간을 아낄 수 있습니다
Texture size는 메모리와 대역폭에 영향을 주지만(지연발생, 버벅거림 유발) 렌더링 퍼포먼스(프레임 속도 저하)에는 아무런 영향을 주지 않습니다
만약 Texture에서 렌더링 퍼포먼스에 영향을 준다면 임포트한 텍스쳐보다 굉장히 저해상도인 텍스쳐이기 때문일 것 입니다.
압축 확장자
압축 확장자을 파악하고 있으면 Texture종류에 따라 데이터용량을 효율적으로 관리할 수 있습니다
Defalut
- 텍스쳐를 임포트하면 기본적으로 압축되는 확장자입니다
- 보통 게임용 텍스쳐인 경우 Defalut, normal 압축이 95%로 차지합니다.
- 정확한 데이터를 보고싶다면 '창>통계'에서 비압축자(PF_B8G8R8A8)와 비교해보면 압도적으로 데이터용량 차이가 벌어짐을 확인할 수 있습니다.
Alhpa
- BC1/ DXTC1 은 알파채널을 포함하지 않는 텍스쳐 압축 확장자입니다.
- BC3/ DXTC5는 알파채널을 포함한 텍스쳐 압축 확장자입니다.
- DXTC5의 용량은 RGB: 50%/ A:50% 비율로 저장됩니다 .
- Alpha채널 유무에 따라 용량이 2배정도 차이가 나기때문에 세심한 관리가 필요합니다
Normal
- 노말맵을 임포트하면 자동으로 압축됩니다
- 현재 언리얼에선 포토샵에서 사전 압축한 텍스쳐는 임포트 할 수가 없습니다
- 노말맵을 압축하면 GPU에선 RG채널만 인식하기 때문에 B채널은 사라집니다
그 외
- VectorDisplacement(중립압축)
- 주로 배경에 쓰이는 텍스쳐 품질을 높이기 위해 사용하는 압축자입니다.
- Defalut와 비교했을 때 이미지의 픽셀이 더 부드러워지는 장점이 있습니다
- 단점은 좋아지는 만큼 비용도 같이 듭니다
- 노말맵을 100% 비압축으로 써야만 한다면 VectorDisplacement를 사용합니다