请问构建后生成的纹理变体,用户实际会全部下载吗?
05/2685 浏览互助提问
背景
在开发像素风游戏时,发现构建系统对 PNG 素材生成了额外的 KTX 格式文件。想确认这些变体对用户实际下载体积的影响。观察到的构建行为37 张原始 PNG(共 3.8 MB),构建后 dist/assets/ 产出 96 个文件(共 11 MB)。


文件数量分布:原始文件大小生成文件数数量< 15 KB1 份(直接用原始 PNG)7 个资源15-20 KB2 份(1 PNG + 1 KTX)1 个资源> 100 KB3 份(1 PNG + 2 KTX)29 个资源
3 份文件的对应关系(以 char16 为例):来源Hash格式大小引用位置Origin0be28d33真 PNG(89 50 4E 47)142 KBmanifest-origin.jsonClient 默认460d7a87KTX(AB 4B 54 58)65 KBmanifest-client.json → hashClient @windows4d742a6cKTX(AB 4B 54 58)147 KBmanifest-client.json → hash@windowsManifest 结构manifest-client.json 对每个资源有两个字段:json
复制{
"uuid": "Ab450UJXjd6jnS8dJitSXEsH",
"ext": ".png",
"hash": "ed1e1d21",
"size": 65705,
"hash@windows": "89f18d60",
"size@windows": 147689,
"fs_path": "image/char1.png"
}
想确认的问题用户实际下载的是哪些文件?
可能性用户下载量(37张角色图)说明仅下载对应平台的 1 份移动端 ~2 MB / Windows ~4.2 MBmanifest 结构暗示按平台分发下载全部 3 份~11 MB全量下载从 manifest 结构来看,hash 和 hash@windows 的区分暗示了按平台选择性下载。
但由于引擎运行时从外部加载(dist/ 中无 JS/WASM),无法从静态文件验证实际 CDN 路由逻辑。验证方法建议在浏览器预览时打开 DevTools → Network 面板,搜索同一个 uuid(如 Ab450UJXjd6jnS8dJitSXEsH),
观察是请求了 1 个文件还是 3 个。
补充观察
- 小文件(< 15 KB)不生成 KTX 变体,构建系统有阈值判断
- 有个 18 KB 的文件生成了 KTX 变体后反而变成 65 KB(比原图大 3.5 倍)
- Origin manifest 中的文件似乎仅作存档,不参与客户端分发(34/43 个 hash 不出现在 client manifest 中)



