用途:把来自 Blender、CAD、摄影测量或 Pascal 导出的 .glb/.gltf 处理成浏览器可快速下载渲染的资源,交付物是更小的文件加一份证明没有回退的报告。流程为测量、决策、应用、验证、报告,禁止跳过测量,禁止原地覆盖原文件,每步写新文件。
主要能力:用 @gltf-transform/cli 的 inspect 与 validate 检查贴图分辨率、显存、顶点与三角面数、扩展列表;用 glb-audit.sh 输出原始/gzip/brotli 字节、贴图显存、draw call、三角面、世界空间包围盒、命名节点与所需扩展,并可对比前后差异。结构性优化包括 dedup、prune、weld、quantize;几何压缩在 meshopt、Draco、仅量化或纯浮点间按目标加载器能力择一;贴图先降分辨率,再选 KTX2(etc1s/uastc)、WebP 或缩放后的 PNG/JPEG。另有 instance 降低 draw call,以及默认较激进的 optimize 与 gltfpack 备选管线。
使用方式:先确认加载器是否启用相应解码器(Three.js 的 setMeshoptDecoder/setDRACOLoader、R3F/drei、model-viewer、Babylon.js 的支持情况不同),再运行 npx @gltf-transform/cli dedup、prune、weld、resize、etc1s 或 webp、meshopt 等命令;gltfpack 示例:gltfpack -i model.glb -o model.web.glb -cc -tc -tl 1024 -kn -km -v。最后用 glb-audit.sh 对比原始文件并运行 validate。
验证与限制:必须保持世界尺寸(glTF 单位为米、+Y 向上)、节点名与层级、动画与蒙皮数量、材质外观与 COLOR_0,且 extensionsRequired 中每个扩展都要被目标加载器支持。不能向无法确认解码能力的加载器交付压缩文件;测量缺失时不得声称优化效果;未实测浏览器加载时间应标注“未测量”;若输出未变小应停止并说明;降低贴图质量前须先给用户看视觉对比。ktx 需 KTX-Software 在 PATH,npm 版 gltfpack 无贴图编码器,Draco 经 brotli 后可能小于 meshopt 且解码更慢,validate 对 KTX2 报 IMAGE_UNRECOGNIZED_FORMAT 属预期。