[스크랩] 유니티 이미지 최적화
Unity3D v.3.5.5f3 Pro / iOS Pro (with 2D ToolKit) 기준.
1. 이미지 자체 최적화
png 등의 이미지를 import 하면 압축된 용량이 아닌 원래 용량으로 인입됨.
아이폰의 경우 pvrtc로 압축하여 용량 줄일 수 있음.
256 x 256 size 이미지 크기 비교
- RGBA 32bit : 256 kb
- RGBA 16bit : 128 kb
- RGBA Compressed PVRTC4 : 32 kb
- RGBA Compressed PVRTC2 : 16 kb
texture type 설정
- GUI/HUD 용도로 사용하는 이미지는 GUI로 설정 (이미지 품질이 가장 좋음)
- 그 외는 Texture 혹은 Advanced 선택
- Advanced는 Texture 설정에서 사용자가 옵션 선택 가능
- Advanced에서 "Generate Mip maps" 설정을 해제하면 용량을 줄일 수 있다.
(2D에선 불필요. 게임 화면과 카메라와의 거리를 가깝게 잡은 경우 화질 개선에도 도움이 됨)
이미지 비율 조정
- Unity3d에서는 한 변의 길이가 2의 배수인 정사각형으로 이미지를 사용하게 됨. (2, 4, 8, 16 …)
- 압축할 때 이를 2의 배수인 정사각형으로 늘려주므로 정사각형 안에 들어가도록 사용할 것.
- 9 x 9 이미지는 16 x 16 으로 늘어나게 됨.
- 툴을 통해 이미지 병합시 만약 8 x 16 처럼 비율이 맞지 않을 경우 동일하게 16 x 16으로 늘어나므로
8 x 8 두장 혹은 다른 이미지를 더 합쳐 16 x 16으로 만드는 것이 용량면에서는 좋음 (성능과 반비례)
- 실제 1024 x 1024 altas를 PVRTC4로 압축시 용량은 0.5 mb정도 (2048 x 2048 : 2mb)
2. 이미지 화질과의 상관관계
개별 이미지를 atlas로 합치는 것이 성능 면에서는 도움이 됨.
- but atlas size가 커질 경우 화질이 떨어질 수 있음. (정확한 원인은 파악 못함)
- 개인적인 관점에서 1024정도가 적당한 듯. (2048 이상일 경우 화질 저하 정도가 꽤 큼)
- 4096 사이즈의 경우는 iphone에서 이미지가 보이지 않음
- Edit / Graphic Emulation 설정을 No emulation으로 설정할 경우 보인다는 글이 있었으나 적용해도 보이지 않아 실패함.
3. 용량 & 성능
이미지를 import하고 이를 atlas로 병합하는 과정을 거칠 경우 원본 이미지가 프로젝트에 포함되어 있을 수 있음.
- 실제 build시 unity에서 사용하지 않는 이미지는 포함시키지 않게 되어 있으나
Asset 폴더 내에 Resource 폴더가 있을 경우 Resource 폴더 내의 모든 내용은 강제로 프로젝트에 포함됨. (동적 로딩용)
- 원본 이미지를 별도로 압축하지 않은 경우 앱 용량이 매우 커질 수 있음. =_=
iOS build 시 설정
- Target Device : iPhone / iPad보다 iPhone 혹은 iPad 단독으로 설정
- Target Platform : armv6 < armv7 < armv6 & 7
- Api Compatibility Level : .NET 2.0 Subset < .NET 2.0
- Stripping Level : Use micro mscorlib < Strip ByteCode < Strip Assemblies < Disabled
- Script Call Optimization : Fast but no Exceptions < Slow and Safe
[출처] http://rnblues.blog.me/90151016867