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

你最终不要打成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小时左右,缩减到半小时以内

你好,纹理压缩缓存已经做好了,会进到 2.4.0 版本,可以等 2.4.0 论坛版本发出以后试用看看

6赞

感谢大佬,给你点个大大赞:+1::+1:

麻烦大佬解释一下 ETC和PVR优势是什么

ETC我按你的方式去打包生成,也用了7Zip压缩

纹理压缩的优势,网上有很多说明的,你可以去搜一下;


简单来说,就是 png 和 jpg 等各种图片存储格式,加载到内存之后,不能被GPU识别的,需要先解码成GPU可以识别的格式,才能传递给GPU使用;压缩纹理,实际上就是少了解码这一步,加载到内存之后,可以直接给GPU使用。

这个就好比 png 和 jpg 他们是 zip,rar,7z等等压缩格式,但是文本编辑器(GPU)只认识文本,所以要先解压成出 txt(GPU可识别的格式),才能用文本编辑器打开。


没有区别的话,这个不知道具体情况,也没法告诉啥原因。。。

1赞

这个只适合原生吧,小游戏用了etc2后体积还变大了不合适吧?

我是做原生的,web版不太清楚,按道理web GL是支持压缩纹理的;webp是肯定可以的,可以换这个格式

再测试了一次,内存确实明显降了

mark22222222222

我ios真机测了一下,PVRTC 4B + A,有透明通道图片质量确实不怎么好,不如PNG。

真机截图,缩小看还好,放大看颗粒感明显