如何缩小 GLB 文件
先做几次只改一类设置的对比。文件大小和三角面数量不是一回事:同一份网格,贴一张小纹理或几张大图,体积可能差很多。本文先判断该从哪里下手,具体参数另有专题说明。
1. 留一份对照结果
保留原始 GLB。先用“保守优化”,不减面、不转换纹理,保存结果和命令,记录前后文件大小与三角面数量。后续每次试验都从原文件开始,便于判断变化来自哪个设置。
2. 先比较几何压缩
保留原纹理,试一次“更小文件”预设。它会启用 Meshopt 压缩,但不主动减少三角面。如果体积已经合适,目标查看器也支持输出扩展,就不一定需要继续减面。
| 波纹示例 | 文件大小(字节) | 三角面 |
|---|---|---|
| 原始模型 | 186,756 | 8,192 |
| 保守优化 | 119,120 | 8,192 |
| 更小文件 | 39,248 | 8,192 |
数据来自本站 CC0 波纹示例,使用原生 gltfpack 1.3。纹理只有 16 × 16 像素,主要用于观察几何压缩。两次输出的三角面数量都没变,但这不表示模型的其他属性完全没变。
3. 检查纹理是否占了大头
第二份样本沿用同一网格,换成生成的 1024 × 1024 PNG,原文件为 3,061,644 字节。保留 PNG、启用 Meshopt 后为 2,914,152 字节;再仅将纹理改为 WebP、质量设为 8,输出为 445,632 字节。三份文件均有 8,192 个三角面。
这份样本的主要变化来自纹理。这个例子用于说明判断方法,不代表所有模型都能达到相同压缩率。照片、法线贴图和纯色标志的编码结果会不同。
4. 检查结果是否适合实际使用
按实际展示距离检查模型,再用有代表性的设备测试加载。下载体积更小,不等于显存占用更低或渲染更快。外观和兼容性都满足要求后,再比较哪个版本更省空间。
引擎参考: gltfpack
打开优化工具 ↗