惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
N
News and Events Feed by Topic
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
博客园 - 叶小钗
B
Blog
Vercel News
Vercel News
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
Engineering at Meta
Engineering at Meta
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes
L
LangChain Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Check Point Blog
A
About on SuperTechFans
W
WeLiveSecurity
The GitHub Blog
The GitHub Blog

博客园 - 一丝心情

Volta 安装和使用指南 免费国产ai试用总结 nuxt.js 项目流水线自动部署设置 免费的云数据库 vue 实用指令 IntelliJ IDEA license server 激活(亲测有效) win10/win11专业版激活码(亲测有效) Git 常用指令完全指南 npm 安装依赖报错整理 css3文字渐变, svg文字渐变 http/https与websocket的ws/wss的关系 指令 v-tooltip vue 自定义指令实现v-overflow-tooltip element-ui NavMenu 多级嵌套封装 常用css vue.config.js config.resolve.alias 目录别名配置 three.js 在低版本浏览报THREE.WebGLProgran: shader error 报错解决办法 nuxt 低版本浏览器兼容babel编译配置 常用软件历史版本下载 前端常用指令 数组常用方法总结 vue 中 echarts 添加事件 常用正则
glb格式3d模型压缩
一丝心情 · 2026-02-04 · via 博客园 - 一丝心情

使用glTF-Transform 压缩
 

  1. 基本介绍

    Draco 是 Google 开源的 3D 网格压缩库,作为 glTF 的 KHR_draco_mesh_compression 扩展被广泛采用,能把以几何数据为主的模型大幅减小(对 >1MB 的几何体常见可达几十%到 ~95% 的压缩)。如果模型几何本身很小(<1MB),WASM 解码器的开销可能会抵消压缩收益;另外纹理、动画占多数时应结合纹理压缩/动画优化一起看效果。
    提示:

    • 使用 Draco 压缩后的 glTF / GLB 无法用 Windows 自带的 3D 查看器(3D Viewer)打开查看,应为其只认“未压缩几何”的 glTF。
    • 如果我们的目标是在 Cesium / Three.js / Babylon.js 这些 Web 项目使用可以放心使用 Draco 压缩。


    glTF-Transform 是一套面向工程化场景的 glTF / GLB 资源处理工具链,提供了完善的命令行工具和 Node.js API,可对三维模型进行结构优化、几何压缩、纹理压缩与格式转换等操作。
    提示:glTF-Transform 将常见的模型优化能力(如去重、合并、焊接、简化、Draco 压缩、纹理压缩等)抽象为可组合的流水线,既适合在命令行中快速处理单个模型,也非常适合集成到构建流程或资产流水线中,用于大规模、自动化的三维资源优化。

    安装 glTF-Transform

     首先确保本地有 Node.js 环境,接着执行如下命令全局安装 gltf-transform CLI(核心工具)

    npm install -g @gltf-transform/cli

    image

    安装额外的压缩插件(纹理/网格压缩必需)
    npm install --save @gltf-transform/core @gltf-transform/extensions @gltf-transform/functions
  2. 压缩 GLB 模型

     安装成功后,cd到需要转换的模型路径下,(或者直接文件路径栏上执行cmd),压缩前原模型文件大小116300KB

    image

     使用如下命令为执行单一几何压缩,即只给 mesh 上 Draco,但纹理没变。该方式常用于临时对比。

    gltf-transform draco in.glb out1.glb
    

     可以看到压缩后的文件体积变为 111.77MB

    image

     而执行如下命令则会执行一个综合优化的“生产级流水线”,不仅仅是几何压缩,而是包含清理 + 重排 + 压几何 + 压纹理等流水线活动。适用于生产环境。
    提示:下面参数表示几何用 Draco 压缩,纹理用 WebP,保留原始几何精度。【模型解构会发生变化,有些节点会被合并】

    gltf-transform optimize in.glb out2.glb  --compress draco  --texture-compress webp  --simplify 0

    可以看到压缩后的文件体积变为 1.85MB
    image

    实际生产可使用下方两种,模型解构不会变,适配optimize参数规则(单压缩类型 + 结构三剑客,零报错保结构)

    按 4.3.0 原生规则,--compress仅指定一种几何压缩类型,搭配--no-prune --no-join --no-flatten结构三剑客,彻底禁止层级修改 / 节点合并 / 节点删除,实现 WEBP 纹理压缩 + 单几何压缩,且 100% 保留原始层级 / 节点

    选 Meshopt(无损几何压缩,适合需保留动画 / 变形目标)

    gltf-transform optimize in.glb out6.glb --texture-compress webp --compress meshopt --no-prune --no-join --no-flatten

    选 Draco(极致几何压缩,适合网页 / 移动端,体积更小)

    gltf-transform optimize in.glb out6.glb --texture-compress webp --compress draco --no-prune --no-join --no-flatten
  3. 回退/解压成普通 GLB 模型

     我们也可以用 glTF-Transform 把 Draco 压缩的文件解回普通 glb

    gltf-transform cp out1.glb out3.glb

    可以看到还原后的 GLB 模型体积又变回 117MB

    image