一、节省带宽
大量使用未经压缩的纹理以及使用过大的分辨率都会造成由于宽带而引发的性能瓶颈。
1.1减少纹理大小
使用图集可以帮助我们减少draw call数目,而这些纹理的大小同样是一个需要考虑的问题,所有纹理的长宽比最好是正方形,而且长宽值最好是2的整数幂,这是因为有很多优化策略只有在这种时候才可以发挥最大效用,在unity5中,即便我们导入的纹理长宽值并不是2的整数幂,unity也会自动把长宽转换到离他最近的2的整数幂值,但仍然要注意这个,防止由于放缩造成不好的影响。
除此以外还应该尽可能使用多级渐远纹理技术(mipmapping)和纹理压缩,在unity中我们可以通过纹理导入面板来查看纹理的各个导入属性。通过把纹理类型设置为Advanced,就可以自定义许多选项,例如是否生成多级渐远纹理,如果勾选了,unity就会为同一张纹理创建出很多不同大小的小纹理,构成一个纹理金字塔,在游戏运行中就可以根据距离物体的远近,来动态选择使用哪一个纹理,这是因为在距离物体很远的时候,我们使用了非常精细的纹理,但肉眼也是分辨不出来的。这种时候,我们完全可以使用更小、更模糊的纹理来代替,这可以让GPU使用分辨率更小的纹理,大量节省访问的像素数目。在某些设备上,关闭mipmap往往会造成严重的性能问题,除非我们确定该纹理不会发生缩放,例如GUI和2D游戏中使用的纹理等,都应该为纹理生成相应的多级渐远纹理。
纹理