Unity贴图压缩技巧与iOS图片压缩设置

要学会如何优化Unity3D的贴图,首先要了解Unity3D图片上的各项设置大概是干嘛的,修改之后会导致什么样的变化。另外,贴图资源在Unity3D中占用的内存大小不等于文件本身的大小,而是与贴图资源的设置有关,不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。我在游戏开发中常用的图片格式就是jpg和png,jpg 格式是有损压缩 文件小 不支持透明,png:是无损压缩,文件小,支持透明。

可以看到,这张图片在Unity3D编辑器下大小为2.6M                                                  

unity 图片压缩没有ios unity贴图压缩_unity 图片压缩没有ios

而实际文件大小为342KB

unity 图片压缩没有ios unity贴图压缩_Unity3D_02

同样的设置则只与贴图宽高尺寸有关,与资源原始文件格式无关。因为资源加载后占用内存的大小与安装包打包前资源大小是一致的,所以减小安装包的大小也就是减少贴图资源占用内存的大小。


1.通常为了优化DrawCall,我们会把同一个UI界面上的图片放进一个图集里。

Unity3D的图集长宽只会是2的幂次方,比如256*128,512*512等,而且图集占用内存的大小只和它的压缩格式与长宽有关,与图集里图片的数量多少无关;Unity3D会根据图集内的图片大小自动调整图集大小,如果有新的图片放入图集中,Unity3D会调整图集中所有图片的位置,给新的图片腾出一块地方放进去,当无论如何调整都放不下这张新图片时,Unity3D就会给图片们换个合适的大房子,此时图集占用的内存就会翻倍了。所以我们应该尽可能的让一张图集放入最多的图片,不浪费图集上的每一块地方。图集大小要控制在1024*1024以内,因为超过1024*1024的图集占用的内存会非常大,而且通常会导致一些不必要的内存占用。因此过大的背景图可以让美术切成多个块打包到图集中,然后自己在Unity3D中拼接起来,例如下面这张图集:

unity 图片压缩没有ios unity贴图压缩_unity 图片压缩没有ios_03

很明显,这张图集有将近三分之一是空的,也就是说,有三分之一内存浪费掉了,拆成两张图集后。总内存占用九减少了0.5M

unity 图片压缩没有ios unity贴图压缩_Unity3D_04

unity 图片压缩没有ios unity贴图压缩_贴图_05

2.针对不同的平台,不同的贴图资源,结合实际需求,可以选择不同的压缩格式,能大大减少内存的占用。在项目中,尽可能是使用ETC1和PVRTV4等GPU直接支持的图片格式,不仅内存占用低、性能也更好;当出现质量不及格时,再逐步的提升压缩格式,来满足需要。使用ECT1和PVRTC4 格式压缩,一张1120*600的贴图,会被处理成1024*512,而且转换过程较慢,浪费性能,也会导致图片失真,所以我们应该提前将贴图资源转化为符合标准的图片。

unity 图片压缩没有ios unity贴图压缩_unity 图片压缩没有ios_06


如果原图不是2的幂次方,可以在advance设置Non Power of 2值,

ToNearest :转换成距离该图片最近的2的幂次方值。

ToLarger : 转换成比该图片大的2的幂次方值。

ToSmaller : 转换成比该图片小的2的幂次方值。


3.Mipmap在UI贴图上一定要取消勾选。它有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的是纹理贴图,勾选Mipmap后,Unity3D会生成八个精度不同的贴图,根据贴图与摄像机距离选择使用不同精度的贴图,距离摄像机越远,显示的贴图像素越低,反之,像素越高。所以勾选Mipmap必然占内存,大概会将内存提升30%,因为大多数UI图片都是渲染在屏幕的最上层,就没必要勾选。对于具有较大纵深感的3D游戏,3D场景模型和角色一般是建议勾选Mipmap,能有效有效降低渲染带宽的压力,提升游戏的渲染效率。



4.推荐压缩纹理格式

目前(日本)市面上ES3.0的占比超过9成,Apple A8占比超过9成,推荐android使用ETC2, ios使用ASTC,或者PVRTC。(打入Bundle中的图片资源是已经预先转换好的纹理格式,这样加载的时候优化了解码和转换的过程,能够提高加载速度。这也是为什么不同平台的bundle不能跨平台使用的原因之一)。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空