Unity 优化实践学习(二) ------ 资源优化

时间:2024-03-16 22:18:43

1.资源优化标准

Mesh

动态模型:面片数<3000
           材质数<3
           骨骼数<50
           静态模型:顶点数<500
Audio
          长时间音乐(背景音乐)压缩格式 mp3
          短时间音乐(音效)非压缩格式 wav
               http://blog.csdn.net/u012565990/article/details/51794486
Texture
        贴图长款<1024
Shader
       尽量减少复杂数学运算
      减少discard操作

2.减少冗余资源和重复资源

A、Resources目录下的资源不管是否被引用,都会打包进安装包
      不使用的资源不要放在Resources目录下
B、不同目录下的相同资源文件,如果都被引用,那么都会打包进资源包,造成冗余
      保证同一个资源文件在项目中只存放在一个目录位置

3.资源检测与分析

      https://www.uwa4d.com/#assetbundle

 

优化实践:

1.压缩纹理

  首先看看Android和iOS分别支持哪些格式的压缩:     Unity 优化翻译官方文档(二) ------ 平台特定覆盖的纹理压缩格式

从其中挑选了几个格式来选择性压缩(分有无Alpha):

Android IOS
RGB 16 bit RGB 16 bit
RGBA 16 bit RGBA 16 bit
RGB Compressed ETC2 4 bit RGB Compressed PVRTC 2 bits(对于精度要求低的,比如花草)
RGBA Compressed ETC2 8 bit RGBA Compressed PVRTC 2 bits
RGB Compressed ATC  
RGBA Compressed ATC RGBA Crunched ETC2
RGBA 32 bit RGBA Compressed PVRTC 4 bits
RGBA Crunched ETC2 RGB Compressed PVRTC 4 bits
RGB Compressed ASTC block RGB Compressed ASTC  block

Android端优化实践 (优化完安装包少了10M,图片不多)

        首先采用RGBA Compressed ETC2 8 bit / Max Size更改为1024进行全部图片压缩,然后查看有些图片比较大的进行另外几种格式的尝试,对于无透明通道采用RGB Compressed ETC2 4 bit进行压缩,当然,也要看看效果来决定

        在优化过程中发现几个规律也分享下,带透明通道的大图采用RGBA Crunched ETC2会有惊喜哦,如果图上颜色特别多时采用RGBA Compressed ASTC block进行压缩,但是不带透明通道的纯色图采用了好几种方式压缩后效果也不是太好。至于普通图使用RGBA Compressed ETC2 8 bit压缩后的图感觉还是比较大时就用RGBA 16 bit基本能压缩一半左右

       同时导入设置中注意以下几点 :

Unity 优化实践学习(二) ------ 资源优化

            大致总结下:

            UI界面图片压缩:

                    透明普通图 : RGBA Compressed ETC2 8 bit / RGBA 16 

                    透明大图 : RGBA 16 / RGBA Crunched ETC2(帧动画大图) / RGBA Compressed ASTC block 

                    高清不压缩图 : RGBA 32

                    不透明普通图 :  RGB16 / RGB Compressed ETC2 4 bit

                   不透明大图 : RGB16 / RGB Compressed ASTC block / RGB Compressed ETC2 4 bit

                   不透明的图要仔细看压缩后的图片是否符合需求

          模型:

                  不透明贴图 :  RGB Crunched ETC / RGB Compressed ETC2 4 bit

IOS端优化实践:

          UI界面图片压缩:

              透明普通图 :RGBA Compressed PVRTC 4 bits / RGBA Crunched ETC2(IOS中意外的压缩很小)/ RGBA 16 (有的也压缩的很小)

              透明大图 :RGBA Crunched ETC2(帧动画大图)/ RGBA Compressed ASTC block

              高清不压缩图 : RGBA 32

               不透明大图 :RGB Compressed ASTC block 

         模型不透明贴图:

              不透明贴图 :  RGB Crunched ETC / RGB Compressed PVRTC 4 bits

 

参考文章:

        干货:Unity游戏开发图片纹理压缩方案