做个小小调查,用图集还是用ASTC?

astc和源图是不是tinypng压过的没关系,astc文件的原始体积只和图片的面积有关(以及区块选择大小)。
用tinypng压过再astc,比起直接astc来说,文件体积不变反而质量会差。可能包体会变化一点点(包体zip压缩),但是应该变化比没有那么大。

最好的方案

项目用品质高的PNG和jpg原图

项目根据平台选择使用合理的ASTC 比如 5X5、6X6 、8X8、10X10

在构建项目后 使用压缩工具批量压缩 (此处也可以改成插件批量压缩)

此时,对应的png 质量和大小都是压缩后的 质量稍差,但是物理体积小

ASTC 纹理 质量相对比较好,远程CDN开启 ASTC gzip 压缩即可

小游戏平台可以参考这个文章: 抖音官方文档 性能优化

ASTC可以 参考: ASTC纹理压缩介绍

3赞

懂了。感谢大佬。但是如果考虑到一些不支持astc的平台,这个时候tinypng压缩过的优势就体现出来了吧。

是啊,所以如果是资源都在cdn上面的平台,例如web和微信小游戏,往往都是准备2份资源,astc和png,根据支持的情况下载对应的格式,编辑器里面的纹理压缩设置,也有同时出多份资源的设置。

嗯嗯。了解。
再请教下之前说的cdn开启gzip这个问题?第一次接触,有些不太清楚,除了cdn的配置,cocos这边还需要配置什么吗?

不用配置什么,本身http库支持这个。自动解压的

不过cocos有个bug,windows原生平台上的curl,没开启支持gzip的标志,如果你要用windows原生的话记得给curl加一行:
curl_easy_setopt(handle, CURLOPT_ACCEPT_ENCODING, “”);
其他平台不影响。

好的好的。再次感谢! :heart_eyes:

大佬, 想咨询下, 这个方案的意思是说:
项目build之后, 用插件或者压缩工具, 把构建后的图统一压缩成astc吗,
比如我构建出来的远程包里的图片都是xxx(uuid).png的, astc压缩后, 替换png 为xxx(uuid).astc这样?
另外在cos上准备两份remote资源, 一份原始png的, 一份压缩成astc的,
判断平台是否支持astc后, 动态改远程加载地址去选择加载png还是astc? 是这样吗

大佬, 想咨询下, 这个方案的意思是说:
项目build之后, 用插件或者压缩工具, 把构建后的图统一压缩成astc吗,
比如构建出来的远程包里的图片都是xxx(uuid).png的, astc压缩后, 替换png 为xxx(uuid).astc这样?
另外在cos上准备两份remote资源, 一份原始png的, 一份压缩成astc的,
判断平台是否支持astc后, 动态改远程加载地址去选择加载png还是astc? 是这样吗

不需要额外插件或者压缩工具,cocos creator里面就有配置纹理压缩的,打包的时候就自动压缩,运行时引擎本身也会判断支持不支持来决定加载哪份资源。
所以简单的在编辑器里面配置好就可以了,顶多加个脚本对目录里面的所有资源进行统一设置(因为creator是针对单个资源进行设置)。

谢谢大佬的回复 :grinning:
好像懂了, 在sprite设置纹理压缩的时候, 保留两项对吗, 一项astc6x6, 一项png这样的,
png压缩多少质量合适呢, 40?60?这个看具体效果吗

是的,自己慢慢调,一般png默认80,你可以设置更低的来看看效果。

我的意思的 项目构建后再去压缩 png图片。这样可以保证 ASTC是品质高的png 导出的 而非压缩后的png 转换的

ASTC 是在Cocos Creator 里选择平台的时候 就可以勾选的

1赞

谢谢, 非常感谢~

谢谢大佬, 太感谢了.
构建后压缩png的话, 是用tinypng吗, 还是有别的png压缩插件或者方案的

我们用的 https://pngquant.org/ 调用的命令行

当然你可以使用商店的 插件

类似 构建后自动压缩 PNG 资源

tinypng 商店也有类似的插件,如果想批量压缩 需要去申请开发者 压缩密钥 每个月有上限

太感谢了, 谢谢大佬

大家在项目里用astc 上架苹果商店吗?
我现在遇到问题 ipa包上传是143M 但是苹果商店显示包体会翻倍.
例如iPhone 14 原本包体是127M 但是商店显示321M. Google play也有类似的情况.
大家有解决方法吗? 我猜测上架商店后应该有解压,所以包体接近翻倍 项目里ASTC我设置的6x6
主要是包体大小涉及到买量转化率 一般来说小一些更好

上架IOS和Google play后 商店显示包体会比apk的包体大一倍多 你有遇到吗?

IOS App 在App Store中的包体,是解压缩后的。要减小包体,主要就要减少assets的大小。你可以把aab或者ipa进行解压缩,就基本相当于玩家的安装后的app大小了。