一、为何要进行纹理压缩:
- 纹理显示到屏幕上,需要CPU和GPU协作完成。CPU对资源进行计算解码,然后将纹理数据传输给GPU。GPU通过CPU的数据,将数据渲染到缓冲区。
- 纹理压缩减少了资源在CPU中进行解压缩的过程。
- 纹理压缩减小了包体大小,减少了数据量级,减轻了带宽计算的压力。
- 纹理压缩时内存的使用效率更高。
二、常见的纹理压缩格式:
- DXT格式是Nvidia Tegra提供的,分为DXT1-DXT5这五个级别,Terga支持的实际上是DXT1、DXT3和DXT5。
- ETC是安卓原生支持的,OPNEGL2.0都支持。ETC2只有OPENGL3.0支持.
- PVRTC是Imagination PowerVR提供的,特别的TBDR架构,不渲染被遮挡的部分,有效节省计算资源和带宽。
- ATC是Qualcomm Snapdragon提供的,它支持RGB纹理压缩但不包含alpha通道。
- ASTC -- 从IOS9(A8架构)Apple 手机开始支持ASTC压缩格式 。相对于PVRTC2/4而言,ASTC(4X4)的压缩比会增加到0.25,不过显示效果也会好很多,而且不需要把图片设置为方形。
- RGB 16 bit/RGB 24 bit/Alpha 8/RGBA 16 bit/RGBA 32 bit - 适用所有平台,非压缩格式,对内存消耗和渲染消耗非常不友好。
备注:一旦相应的贴图格式不兼容的时候,U3D会自动将其转换成RGB(A)格式。
不同格式的详细信息科参照官方文档: