glTF 二进制 (.glb)

ISO/IEC 标准

二进制 glTF(GLB) 是 glTF 2.0 标准的自包含单文件二进制打包格式,在基于网络的 3D 图形、增强现实 (AR) 和实时游戏引擎中被广泛誉为"3D 领域的 JPEG"。

将 GLTF 转换为 GLB

免费的浏览器端 GLTF 转 GLB 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 GLB 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 GLB 文件:

十六进制签名 (偏移量 0):

67 6C 54 46

ASCII 表示形式: glTF

标准化: ISO/IEC 12113:2022 / Khronos 开放标准

技术规格

容器架构12 字节二进制文件头(“glTF”、版本和长度),后接 JSON 块(CHUNK 0)及二进制缓冲区块(CHUNK 1)
压缩方式DRACO 网格几何压缩、KHR_texture_basisu(KTX2/Basis Universal GPU 纹理)和 ExtMeshopt
字节序小端序(Intel x86 / WebGL 标准)
色彩空间sRGB 纹理, 线性 PBR 粗糙度/金属度通道
通道与结构PBR 材质(金属度-粗糙度)、蒙皮骨骼网格、变形目标、动画、摄像机和灯光
最大尺寸顶点数和三角形数不限(支持数 GB 的模型)
透明度支持 Alpha 覆盖(MASK)、Alpha 混合(BLEND)和体积透射
流式传输与渐进式加载单个独立文件,带有二进制偏移表,可直接加载到 GPU 顶点缓冲对象(VBO)

技术对比矩阵:GLB 对比同类产品

技术属性GLB (当前)GLTFUSDZFBX
打包模型单个完整独立的二进制文件JSON 文件及外部 .bin 和纹理文件包含 USD 架构和纹理的 ZIP 归档Autodesk 专有二进制/ASCII 格式
网页与 AR 标准软件支持情况因程序而异。软件支持情况因程序而异。苹果 iOS Quick Look AR 标准桌面游戏引擎导入标准
材质模型标准化 glTF PBR 金属度-粗糙度模型标准化 glTF PBR软件支持情况因程序而异。专有 Phong/Lambert/PBR 着色器
GPU 读取性能即时(直接内存映射)快(需要发出多个网络请求)快(未压缩的 ZIP 条目)慢(需要复杂的解析)

常见损坏模式与十六进制恢复指南

3D 模型渲染时缺少纹理或显示为纯黑色表面。

根本原因: 嵌入的纹理块损坏或缺少 PBR 金属-粗糙度纹理引用。

恢复方法: 使用 File2File.app 3D 转换器或 glTF-Transform 检查并修复数据块偏移量。

安全分析与解析器攻击向量

GLB 解析器处理 JSON 文本块以及任意二进制缓冲区,如果缓冲区长度不匹配,可能会触发缓冲区溢出。

已知攻击向量

  • bufferView.byteOffset + bufferView.byteLength 超出二进制块长度时发生缓冲区越界读取。
  • 执行 WebGL drawElements 时发生越界顶点索引读取。
  • 通过病态的 Draco 解压缩循环导致拒绝服务。

防御性最佳实践: 严格验证所有 accessor 和 bufferView 的字节范围均位于声明的二进制块边界内。

历史渊源与里程碑

2022glTF 2.0 和 GLB 被 ISO/IEC 国际标准化为 ISO/IEC 12113:2022。
2018谷歌采用 GLB 作为 Android Scene Viewer 和网页 <model-viewer> AR 体验的标准 3D 格式。
2015科纳斯组织 (Khronos Group) 推出 GLB,作为 glTF 生态系统的单文件二进制容器。

核心优势与特点

  • 完全自包含:将 3D 几何体、PBR 材质、纹理(PNG/JPEG/KTX2)和骨骼动画打包到一个文件中。
  • 直接上传 GPU:二进制几何缓冲区与 WebGL / Vulkan 内存布局匹配,零 CPU 解析开销。
  • WebGL、WebGPU、电商 3D 产品预览以及移动端增强现实无可争议的标准。

技术局限与劣势

  • 二进制特性使得如果没有专用的 3D 工具,很难进行手动文本检查或编辑。
  • 使用高级压缩扩展时,需要 Draco 或 Basis Universal 解压缩库。
  • 苹果平台倾向于将 USDZ 用于原生 iOS Quick Look AR,需要从 GLB 进行格式转换。

趣味技术冷知识

  • 每个 GLB 文件的前 4 个字节是 0x67 0x6C 0x54 0x46,其 ASCII 码拼写为"glTF"。
  • 在智能手机网页浏览器上查看 3D 运动鞋时,您几乎肯定在查看交互式 GLB 模型。
  • GLB 的设计专门允许图形硬件直接将顶点缓冲区从磁盘读入 VRAM,而无需任何转换。

常见技术问题

glTF 和 GLB 有什么区别?

glTF 是一个引用外部 .bin 几何图形和独立图像纹理文件的 JSON 文件。而 GLB 则将整个包打包成一个紧凑的二进制文件。

如何将 GLB 转换为 Apple AR 的 USDZ?

您可以直接在网页浏览器中使用 File2File.app,一键将 GLB 模型转换为适用于 Apple 平台的 USDZ 文件。

我可以在 Blender 中打开 GLB 文件吗?

可以。Blender 在软件内部内置了原生、高性能的 glTF/GLB 导入和导出功能。