텍스쳐 압축 확장자

KJW·2022년 9월 15일
0

텍스쳐를 임포트할 때 메모리와 대역폭이 제한되어 있기 때문에 엔진에서 텍스쳐를 압축해줍니다
고해상도 텍스쳐는 엔진에서 압축하는 시간이 지연되는 이슈[^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를 사용합니다
profile
빈공간을 채워가는 개발자

0개의 댓글