求助求助 微信小游戏到底怎么用astc

我用的一个新项目demo测试。直接走小游戏分包。难道小游戏分包没给我们开gzip传输?

子包是不是本身就不支持。我现在就是用子包测试

自定义解压。是怎么解压的。看到官方好像有一个gzip.js文件使用官方的吗

官方的不知道开没开,你自己看下网络请求对比一下文件大小就知道了

压缩解压缩用的pako库

大佬 你们的游戏苹果发烫掉帧咋解决的。我们这边通过测试。
即使没有多少update运算。随着渲染图片渲染spine的变多。苹果就会越来越烫 也掉帧。drawcall控制好了只有三四十。是不是基本上可以确定就是渲染图片导致内存变大。或者说渲染压力太大 导致手机发烫.那是不是只有纹理压缩这一个方案了。

不一定吧,spine如果是实时运算模式也挺占内存的,改成缓存模式试一下?

大佬。你们astc文件大小跟图片大小对比是什么情况。比如1mb图片转成astc格式文件时多大。然后astc进行gzip压缩又变成了多大


gzip后的astc会比图片稍微小一点点,没压缩的会比图片大不少,论坛之前的帖子有人发过详细的数据

麻烦问下,微信小游戏上upzip效率怎么样,是不是无感的,我们项目有大量的图片,担心每次unzip会影响效率。另外spine图和fnt也可以astc吗

口径一样么, astc和图片都gzip了?

图片没有gzip,cdn开启gzip传输就行了

在我们项目里面基本是无感的,你可以自己增加打印看下解压的耗时,spine和fnt也可以使用压缩纹理

我的意思是基于 astc gzip后和图片用cdn gzip 大小比较是什么情况

请教 这个是个什么实现过程?要改CCC的工具源码?

首先写个插件在构建之后实现文件的gzip,然后看下引擎的astc解析源码,自己增加一个ungzip数据的流程
image ,压缩和解压我用的pako库

多谢解答啊,
第一步插件的工作 这个能实现,第二步呢parser.js里我试着看了看,因为引擎已经支持ASTC了 有了parseASTCTex 应该就是这里的工作了吧,
return function (file, options, onComplete) 里处理解析文件头 和返回astcData的功能,
那么我猜测 是不是比如在return function起始位置那里 加入unzip的处理 然后把unzip后的数据 继续传给后面的流程 就是了,等于加了一个中间解析ZIP的工作 就是了,
当然这是我目前的理解啊 ,有不一致的地方 请指点一下再

大概是这么个流程

改了这里 编译了引擎也 ,定制也应该是成功了,用的是安卓系统测试
目前是先用正常的ASTC格式文件测试 项目包里只有某个图片的ASTC文件 没有导出PNG,图片也显示正常,
比如在parseASTCTex里第一行位置加了console.log ,有日志输出也,
但return function里面 也加了console.log没有运行到就 没有对应日志输出,说明return function应该没有被调用到就,
当然 换成压缩后的ASTC格式文件 就直接运行错误了 initWithImageFile: xxx.astc failed!,return function里面的console.log也没有对应日志输出

感觉ASTC的解析 好像不在parseASTCTex这里就,
我是哪里弄错了可能?

原生环境不需要这么玩呀,这个玩法是适合小游戏远程资源加载,本身apk就类似于zip,astc之后包体会减小的,只需要热更的脚本将astc文件zip,然后热更下载完之后解压,热更新是自带解压文件的,不用动管线