前言
Unity中,贴图会占用大量的空间与内存。所以贴图压缩就成了必要流程。贴图的大小极大程度决定了包体大小,内存占用以及资源的加载速度。UGUI中提供了Packing Tag将图片打包成图集,在减少内存和资源占用大小的同时也能减少DrawCall。那么剩下的就是针对各个平台来选择合适的压缩方式了。
常用压缩
ETC:ETC压缩是一种早期开发的有损纹理压缩技术。可对24-bit RGB进行6倍压缩,但是不支持带有Alpha通道的图像压缩(需OpenGL ES 2.0同时图像的长宽是4的倍数)。
ETC2:ETC2拓展了ETC1,提供了更高质量的RGB和RGBA,单通道(R11)和双通道(RG11)数据的压缩(需OpenGL ES 3.0同时图像的长宽是4的倍数)。
ASTC:ASTC中ARM研发的一种较新的贴图压缩格式,从IOS9(A8架构,现在都iOS12了)开始支持ASTC压缩格式 ,相对于PVRTC2/4而言,ASTC(4X4)的压缩比会增加到0.25,不过显示效果也会好很多,而且不要求图片长宽相等。
Unity中ASTC压缩率: