【建议】希望优化下纹理压缩

每张纹理单独设置,确实太麻烦了,我在这个帖子也提到了,希望加一个全局默认的纹理格式。
目前我的做法也是用脚本去修改meta文件。

希望尽快加一下吧,每次打包要等2个小时左右,痛苦

好像使用压缩纹理,会大大增大包体。我做了个测试:

因为背景图用的还是ETC1 RGB,如果用透明通道就是597*2了。

pvr / pkm是可以很高压缩率的。
cdn启用gzip压缩。
原生打出的包体本身就压缩了吧。

个别压缩过的图片,纹理压缩可能是会变大;

可以尝试下,把所有图片都压缩,看看打出来的包体是什么情况

另外就像楼上说的,压缩过的纹理文件,还可以用 gzip 在压缩一次


给个参考:纹理压缩之前,包体 2G 左右,压缩之后 750M左右

社区分享的缓存实现方法 几行脚本搞定压缩纹理缓存,打包速度快到起飞,Mac OS 10.15 & Windows10 均测试成功

1赞

我用的是cocoscreator里面的压缩纹理,你们都是自己用工具打的吗

可以分享一下你们项目中具体是怎样使用压缩纹理的吗,比如用编辑器处理的还是用工具自己打,各有什么好处,一整套流程之类的,让新人学习学习姿势

整个过程都用python实现,命令行一键打包,大致流程如下:
1 构建+纹理压缩,
2 加密+gzip压缩
3 生成 obb 包
4 生成 apk

纹理格式,也是使用python,一件修改纹理格式;这个最好是编辑器提供 各平台 默认纹理格式。

2赞

你最终不要打成ipa、apk嘛
对ipa和apk包体进行压缩就行了嘛,安装的过程就是解包pkm / pvr资源了

至于h5(各种小游戏,或上浏览器的)那就更简单了,上cdn设置就行了。

cocos打包过程不需要对原来的纹理压缩额外做啥。

好的,谢谢大佬

了解,谢谢大佬

gzip 这步存疑,pkm 文件,打包 apk/ipa 这步,会对资源文件进行压缩,打出来的包体也不是很大, pkm 文件压缩了,每次使用时引擎都要解压一次,这样是否有点多余?

是的,理论上是这样的,不过经过实践,发现单独压缩一下纹理,包体会小一下,这是我加入gzip压缩时的截图;
不过加入之后,创建图片之前,确实会多一部解压,就看怎么取舍吧

你这资源量够大的,我们不到 100mb 的包,估计差别更小了

差别很大:

cdn配置的话是由浏览器支持解压(通常是c/c++实现)。
ipa / apk的话,貌似可以直接包体支持压缩插件,安装的时候解压,不是加载后解压(待验证)。
当然如果在cocos纹理压缩完成后自定义插入gzip压缩步骤,那得在加载后解压(安装包支持的话不建议选择这种)。

压缩时可以设置压缩等级,不同等级压缩率不一样;
压缩纹理需要解压,CCImage里面已经实现,不需要额外的代码

CCImage支持是支持,
但得占用加载时间的。
当然如果有资源加密步骤另说。

另外,跨平台的话,还得实现一套js解压?这个效率可是不好说。。。

嗯嗯,是的,是会有消耗,毕竟是要解压的,这个要看在包体和CPU上,怎么选择吧;我们是解压和加密一起做的;

用了这个方案之后,整个打包流程从2小时左右,缩减到半小时以内