Unity贴图压缩

Unity 贴图压缩方法和对比
在手机平台,贴图必定需要压缩,如果不压缩,没多少手机可以坑得住内存,除非你对贴图的精度需求很高,需要牺牲对低端设备的适配,贴图压缩是一个常用和必要的内存优化手段
以下是常用的一些贴图压缩对比图
压缩对比

我们在压缩的时候,通常会把贴图分为透明和不透明类型,对于不透明的贴图,则没有通道图,可以直接用RBG16、RGB PVRTC4、ETC来压缩。
对透明的贴图,我们需要分离出两张图,一个是颜色图(包含RGB通道)一个是通道图(定义alpha)
这样分离的原因在于,可以达到更好的压缩质量,而又不至于占用内存太大
比如,颜色图用RGB PVRTC4,通道图也用RGB PVRTC4,这样一张256KB的图可以压缩到64KB

上图列出的是在IOS的平台下的压缩方法,IOS平台的GPU型号统一,所以以上的贴图压缩格式,适合任何IOS平台。对于Android平台下也差不多,只是PVRTC 4换成了ETC,例如:通道图和颜色图都是RGB ETC 压缩。只是不确定所有Android平台都支持RBG16,这个还没做过测试,理论上是都支持的

对于一些精度要求低的贴图,例如场景中的花花草草,甚至可以用RGBA PVRTC2来压缩。比RGBA PVRTC 4还要少一半。

对于UI贴图,优先推荐使用RGB16 + 通道图的压缩方式,因为这对精度上是无损的(就是不会模糊),但会产生色偏。就是一些颜色值发现了变化(PVRTC/ETC这些压缩算法也不能百分百还原颜色值,但不会像RGB16一样发生大片的颜色的丢失)。发送变化的原因在于,RGB16其实就是RGB565,在每个通道的最低3位的信息都被丢弃。所以颜色上会有大面积的偏差,特别是对于渐变类型的纹理,RGB16适合没有渐变或颜色明快的纹理。这个问题可以在前期定美术风格的时候,就考虑进去。但大多数情况下,这些损失是可以接受的,如果不能接受,用PVRTC4来压缩或者原图

总结
IOS平台:对于UI,优先使用RGB16+RGB PVRTC4,次选RGB PVRTC4+RGB PVRTC4。
对于场景,根据精度要求使用RGB PVRTC4+RGB PVRTC4或RGBA PVRTC4,如果精度要求更低,可考虑PVRTC2
Android平台:如果想全平台通用,压缩方式没什么可选择的,对于UI和场景,最通用的方式是RGB ETC4+RGB ETC4
压缩质量:仅比较RGB这三个通道的质量,RGBA32 > RBG16 > RGBA16 > RGB PVRTC4/ETC4 > RGB PVRTC2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值