Texture를 언리얼로 불러들일 때 메모리와 대역폭이 제한되어 있기 때문에 언리얼에서 기본적으로 Texture를 압축해줍니다.
4K(4096x4096) 이상의 Texture는 언리얼에서 압축하는 시간이 지연되는 이슈^[Defer Compression 을 비활성화하면 임포트할 때 바로 압축이 되지 않고 직접 저장 선택 시 압축이 되어 고해상도 텍스쳐를 임포트할 때 지연되는 시간을 아낄 수 있습니다]가 발생하기도 합니다.
Texture Size는 메모리와 대역폭에 영향을 주지만 (지연발생, 버벅거림 유발) Rendering Performance (프레임 속도 저하)에는 아무런 영향을 주지 않습니다.
만약 Texture에서 Rendering Perfomance에 영향을 준다면, 불러들인 Texture보다 굉장히 저해상도인 Texture이기 때문일 것 입니다.
압축 확장자
Texture 종류에 따라 압축 확장자를 달리 설정하면 데이터 용량을 효율적으로 관리할 수 있습니다.
Defalut
- Texture를 임포트하면 기본적으로 압축되는 확장자입니다.
- 보통 게임용 텍스쳐인 경우 Defalut, Normal 압축이 95%로 차지합니다.
- 정확한 데이터를 보고싶다면 ‘창>통계’에서 비압축자(PF_B8G8R8A8)로 설정된 텍스처와 비교해보면 압도적인 데이터 용량 차이를 확인할 수 있습니다.
Alpha
- BC1/ DXTC1 은 알파채널을 포함하지 않는 텍스쳐 압축 확장자입니다.
- BC3/ DXTC5는 알파채널을 포함한 텍스쳐 압축 확장자입니다.
- DXTC5의 용량은 RGB: 50%/ A:50% 비율로 저장됩니다.
- Alpha채널 유무에 따라 용량이 2배 정도 차이가 나기 때문에 세심한 관리가 필요합니다.
Normal
- NormalMap을 임포트하면 자동으로 압축됩니다.
- 2022 기준 UE4에선 포토샵에서 사전 압축한 Texture는 임포트 할 수가 없습니다.
- 노말맵을 압축하면 GPU에선 RG채널만 인식하기 때문에 B채널은 사라집니다.
etc
- VectorDisplacement (중립 압축)
- 주로 배경에 쓰이는 텍스쳐 품질을 높이기 위해 사용하는 압축자입니다.
- Defalut와 비교했을 때 이미지의 픽셀이 더 부드러워지는 장점이 있습니다.
- 단점은 좋아지는 만큼 비용도 같이 커집니다.
- 노말맵을 100% 비압축으로 써야만 한다면 VectorDisplacement를 사용합니다.
Unreal Import 시 Texture 기본설정
- Base Color 같은 RGBA채널을 전부 사용하는 텍스쳐는 Gamma 보정을 위해 sRGB를 활성화해줍니다.
- Mask로 사용하는 텍스쳐는 sRGB를 비활성화 해줍니다.