유니티에 이미지 파일을 임포트 하면 외부에서 볼떄와 이미지 사이즈가 달라져있다.

이미지파일은 압축포맷(jpg, tga, png 등)에 따라 퀄리티를 유지하며 용량을 줄이는 매커니즘에 특화되어 있다면, 실제 그래픽 시스템에서는 그래픽 시스템에 최적화된 별도의 포맷이 존재한다.(RGB, RGBA, DX(n)등) 즉, 이미지파일의 압축포맷과 시스템에서 사용하는 포맷이 다르다.

 

그래픽 시스템에서도 압축포맷이 있긴 하지만 용량보다는 처리 효율성이 더 중요하기 때문에 파일의 압축포맷에 비하면 많이 떨어질 수 밖에 없다.

 

일반적으로 이미지파일을 로드한다는 의미는 이미지파일의 압축을 풀어서 시스템에서 사용하는 이미지포맷으로 변경하여 메모리에 담아 둔다는 이야기다. 유니티에서는 런타임시 이러한 파일의 이미지 압축을 풀고, 시스템포맷으로 변경하는 과정을 생략하도록 애초 어셋에 등록할때 시스템에서 사용하는 이미지포맷으로 변경하여 사용하도록 되어있다.

 

출처: http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=50370 (댓글답변중)

 

한마디로 jpg, tga등의 압축포맷에 상관없이 유니티상에 들어오면 유니티상에서 플랫폼별로 설정한 이미지포맷으로 들어온다는 것이다.

유니티에 파일을 넣을때 이미지압축포맷이 빌드시 용량이라던지 퀄리티에 영향을 주는것은 아닌것 같다.

다만 빌드나 플랫폼변환, 업데이트시 압축포맷에 따라 시간이 오래걸릴 수는 있을것이다.

 

아래의 png, jpg압축 사이트에서 이미지 압축 후, 적용해 보았다.

 

 

 

 

일단 이미지 압축시 떨어지는 퀄리티의 차이, 옆에 놓고 보면 비교가 되지만, 모바일에서의 경우 크게 눈에 띄지 않을정도로만 뭉개진다.

사용하는 색의 종류를 줄여 용량을 줄이는 방식인것 같다.

 

용량은 굉장히 많이 줄어든다. 하지만,

 

 

유니티상 인스팩터상에서 보면 용량이 똑같아 보인다. ETC 4bits의 압축방식을 이용하면 1024맵은 0.7MB로 통일되나 보다.

하지만, 이건 빌드를 걸기 전에 임시로 보여주는 용량인것 같고, 실제로 빌드를 해보니 용량이 줄어들었다.

자세한 용량차이를 기록했어야하는데, 다시하기는 귀찮아서 일단 줄어든것만 기억하자.

아마 색상의 종류를 줄였기 때문에, 사용된 색의 양에 따라 이미지 용량에 차이가 생겼으리라 생각한다.

색의 양을 줄인만큼 그라데이션이 들어간 이미지일수록 눈에 띄게 퀄리티가 떨어지는게 보인다.

 

 

https://tinypng.com

 

TinyPNG은 PNG 파일의 파일 크기를 줄이기 위해 스마트 손실 압축 기술을 사용한다. 선택적 이미지의 색상 수를 감소시킴으로써,보다 적은 바이트는 데이터를 저장하도록 요구된다.효과는 거의 보이지이지만 파일 크기가 매우 큰 차이!

 

평균 65%이상 압축률

 

그외 사이트

pngquant.org

code.google.com/p/as3pngcolorconvert

+ Recent posts