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

内存(显存)更小,项目里面图片太多了。如果都是png容易内存不足,宁愿稍微下载慢一点。再说开了cdn的gzip压缩,astc实际上下载的数据也不大。

如果先用tinypng压一遍,再用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
主要是包体大小涉及到买量转化率 一般来说小一些更好