什么是GLB和GLTF?从文件结构、资源组织到使用场景讲清楚 页面主图
页面主图

GLB和GLTF 都是三维模型在网页、引擎和在线展示场景里常见的交付格式。它们的关系不是“谁替代谁”,而是同一套 glTF 2.0 规范的两种组织方式:GLTF更像一份可读的JSON说明书,GLB则把说明书和二进制资源打包成一个文件。

先说结论:GLTF负责描述,GLB负责打包

一个典型的 .gltf 文件本质上是JSON文本,里面记录场景、节点、网格、材质、贴图、动画和buffer引用。它经常会同时带着 .bin 文件和若干图片贴图。.glb 则是二进制容器,通常把JSON片段、bin数据和部分资源放进一个单文件里,传给别人或上传平台时更不容易漏资源。

GLTF目录里通常有哪些东西

实际拿到GLTF时,不要只看主文件。材质是否正常、模型是否完整,往往取决于同目录里的外部资源有没有一起保留。

什么是GLB和GLTF?从文件结构、资源组织到使用场景讲清楚 奔驰GLB
奔驰GLB
文件或字段作用检查重点
.gltfJSON主文件,记录场景结构和资源引用能直接打开查看字段,路径要和资源目录对应。
.bin保存顶点、索引、动画等二进制数据缺失后模型可能完全不显示或只显示空场景。
png / jpg / webp贴图资源丢失后常见表现是模型发白、粗糙度异常、透明面错误。
materials / textures材质和纹理引用关系要看PBR材质、法线贴图、透明度等是否被目标工具支持。

一个最小的glTF结构长什么样

介绍GLB/GLTF时,最有用的不是背定义,而是知道它大概怎样描述一个模型。下面这个片段能看出:场景指向节点,节点指向网格,网格再引用材质和几何属性。

glTF 2.0常见结构片段

{
  "asset": { "version": "2.0", "generator": "exporter name" },
  "scene": 0,
  "scenes": [{ "nodes": [0] }],
  "nodes": [{ "mesh": 0, "name": "ModelRoot" }],
  "meshes": [{
    "primitives": [{
      "attributes": { "POSITION": 0, "NORMAL": 1, "TEXCOORD_0": 2 },
      "indices": 3,
      "material": 0
    }]
  }],
  "materials": [{ "pbrMetallicRoughness": {} }]
}

GLB和GLTF的区别

对比项GLTFGLB
可读性JSON文本可直接查看,适合排查结构二进制文件,需要工具读取内部信息
资源管理外部bin和贴图要一起保存多数资源可打包成单文件
交付便利性目录完整才稳,发文件时容易漏资源单文件更适合上传、发送和归档
调试修改替换贴图、检查路径更方便修改前通常要先解包或用工具处理
常见使用开发调试、资源整理、结构分析网页展示、平台上传、客户预览、轻量交付

拿到文件后怎么判断它是否完整

真实项目里经常遇到这样的情况:GLTF主文件还在,但贴图目录被漏传;或者GLB能打开模型,却发现材质发白、透明面不对。判断文件是否完整,可以先用检查命令看场景、网格、材质、贴图和体积信息。

查看GLB/GLTF结构信息

gltf-transform inspect model.glb
# 重点看 scenes、meshes、materials、textures、animations 和文件体积
# 这个命令只检查结构,不会改动原始文件

什么时候选GLB,什么时候保留GLTF

  • 发给客户或上传平台:优先使用GLB,单文件更不容易丢贴图和bin。
  • 开发调试或排查材质:保留GLTF目录,因为JSON和外部资源更容易检查。
  • 后续还要编辑模型:不要只留GLB/GLTF,还要保存建模软件源文件或原始工程资料。
  • 网页展示:GLB使用更普遍,但仍要注意文件体积、贴图尺寸和浏览器支持的扩展。

常见误区

GLB/GLTF不是建模软件的完整工程文件。它们适合传输和展示网格、PBR材质、贴图、骨骼动画等内容,但不一定保留建模软件里的修改器、历史记录、参数化建模信息或所有插件数据。另一个误区是只看后缀判断质量:真正决定可用性的,是内部结构、贴图资源、导出设置和目标软件的支持情况。

实际建议

如果只是做展示、传输和平台上传,GLB通常更省心;如果还要检查结构、替换贴图或分析导出问题,GLTF目录更适合。最稳妥的做法是:源文件用于继续编辑,GLTF用于调试和资源检查,GLB用于最终交付和展示。

什么是GLB和GLTF?从文件结构、资源组织到使用场景讲清楚 参考文章配图
参考文章配图

常见问题

GLB和GLTF是不是两种完全不同的格式?

不是。它们属于同一套glTF 2.0格式体系,差别主要在资源组织方式:GLTF更像可读的JSON清单,GLB更像把清单和资源打进一个二进制包。

只保留GLB够不够?

如果只是展示和传输通常够用;如果后续还要修改材质、替换贴图或回到建模软件继续编辑,最好同时保留源文件和导出前的资源目录。

什么是GLB和GLTF?从文件结构、资源组织到使用场景讲清楚 参考文章配图
参考文章配图

参考资料

下面这些公开资料用于核对概念和术语,正文已经重新整理为本站自己的说明和操作判断。