CocosCreator压缩纹理使用总结

2021-04-15  本文已影响0人  程序猿TODO

前文所说,和原始的PNG图片相比,压缩纹理在内存和包体上都有巨大的优势,但由于移动设备的硬件和OpenGL ES支持不同,目前还没有一种压缩纹理格式既能发挥优势,又能兼容所有设备,所以需要针对不同平台做定制。

1 不同纹理的特点

1.1 ETC1

ETC1内存占用是PNG的1/4,文件大小是PNG的1-3倍(经过zip或打成apk后是PNG的1/2~1/3)。但是ETC1只能存储RGB信息,不适用带透明度的图片,为解决这个问题,Creator在ETC1文件中额外写入了透明度信息,即ETC1+A格式,所以占用内存也比原始ETC1多一倍,即相当于PNG的1/2。ETC1/ETC1+A需要OpenGL ES 2.0(对应WebGL 1.0)环境,目前几乎所有Android手机都支持ETC1,但是iOS不支持

1.2 ETC2

ETC2在内存和文件大小方面和ETC1一样,即内存占用是PNG的1/4,文件大小是PNG的1-3倍(经过zip或打成apk后是PNG的1/2~1/3)。和ETC1不同的是,ETC2能完整存储RGBA信息,适用于任何图片,且Android和iOS系统都支持。但是ETC2需要OpenGL ES 3.0(对应WebGL 2.0)环境,目前还有不少低端Android手机不兼容,iOS方面从iPhone5S开始都支持OpenGL ES 2.0。

1.3 PVR

PVR常用的是PVRTC4+A,在内存和文件大小方面和ETC一样,适用于所有iOS设备,但是Android不支持。另外PVR要求纹理长宽相等(正方形)且是2的幂次方,例如1280720的PNG图片,转换为PVR后变成20482048,这一点会大大增加内存消耗。在实测中还发现转换后的图片质量不如ETC,存在模糊毛边现象,对画面要求高的游戏不适合。如果要用PVR格式,则图片大小应该依次限制在256、512、1024、2048内,宁愿用3张1024也比用一张2048好。

2 Creator使用总结

上一篇 下一篇

猜你喜欢

热点阅读