Unity

'효율적인 텍스처 압축 꿀팁' 정리

푸쿠이 2022. 8. 9. 18:22

https://www.youtube.com/watch?v=BeEjoTa9sSo 

 

제목에서부터 '이건 보면 도움이 되겠다.' 라는 느낌이 솔솔 왔다.

 

 

Texture Compression

 

 

우리가 생각하는 이미지는 True Color이다.

bpp는 bits per pixel이고,  32 bits는 채널 당 8 bits이다. (줄일수록 층이 생기는 걸 볼 수 있다.)

PNG, JPG 차이

PNG는 비손실 압축이고, 이미지에 들어있는 색상 숫자에 따라 용량 차이가 난다.

JPG는 손실 압축이고, 퀄리티를 조절할 수 있어서 용량을 많이 줄일 수 있다.

 

동일 퀄리티에서 유사 색상이 많을 경우, PNG가 압축 효율이 좋을 수 있다.

 

(PNG, JPG) 포맷, (DXT, ETC) 포맷의 차이

PNG, JPG와 같은 이미지를 GPU에서 사용하려면, 메모리를 그냥 4MB를 먹는다.

 

PNG, JPG와 같은 포맷은 디스크의 저장 용량을 아끼기 위한 알고리즘이다. 보통 텍스쳐 포맷이라고 부른다.

DXT, ETC와 같은 포맷은 메모리 효율을 위한 알고리즘이다. 보통 픽셀 포맷이라고 부른다.

 

GPU에서는 이런 이미지들을 GPU 전용 포맷으로 변환해서 사용하게 된다.

원본이 어떻든 상관이 없다. (그래서 PNG, JPG, PSD 파일 구분은 게임에 영향을 주지 않는다.)

이미지를 GPU에서 사용할 때, 텍스쳐라고 부름.

텍스쳐는 보통 쉐이더에서 사용함.