glTF JSON (.gltf)

ISO/IEC 标准

GL 传输格式(glTF)是一种开放、免版税的 JSON 规范,供 WebGL、WebGPU、游戏引擎和原生应用程序高效传输和加载 3D 场景与模型。

将 GLTF 转换为 GLB

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

检查与元数据

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

选择或将文件拖放到此处

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

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

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

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

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

7B 0A 20 20 22 61 73 73 65 74 22

ASCII 表示形式: {\n "asset"

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

技术规格

容器架构可读的 JSON 文档,用于描述场景图、节点、网格、访问器、材质和动画,并引用外部缓冲区
压缩方式外部纹理(PNG、JPEG、WebP)及可选的 Draco 几何压缩
字节序UTF-8 JSON 文本(引用小端序 .bin 缓冲区)
色彩空间sRGB 基础色, 线性粗糙度/金属度
通道与结构场景层级、节点、摄像机、PBR 材质、蒙皮骨骼和变形目标
最大尺寸坐标空间和三角形数量不限
透明度支持 Alpha 模式 BLEND、带阈值的 MASK,或体积透射
流式传输与渐进式加载支持异步加载:场景 JSON 可立即加载,较大的二进制缓冲区则在后台流式传输

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

技术属性glTF (当前)GLBOBJFBX
文件架构JSON 场景文本 + 关联的 .bin / 纹理单个完整独立的二进制文件纯文本顶点和面 + .mtl专有的二进制/ASCII 容器
PBR 材质标准标准化的金属-粗糙度 PBR标准化的金属-粗糙度 PBR传统的 Phong/Lambert 材质自定义专有材质
动画支持骨骼蒙皮与变形目标骨骼蒙皮与变形目标无(仅静态几何体)复杂的动画与骨骼
运行时性能针对 WebGL 和实时引擎进行了优化针对 WebGL 和实时引擎进行了优化需要缓慢的解析和重建需要复杂的桌面 SDK 解析

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

3D 引擎错误:"加载缓冲区失败:未找到 URI"。

根本原因: 关联的 .bin 二进制文件或纹理图像未与 .gltf 文件一起上传。

恢复方法: 将所有关联文件打包在一起,或使用 File2File.app 直接将其转换为单个 GLB 文件。

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

glTF JSON 文件引用了外部 URI(数据 URI 或远程 URL),这可能会触发服务器端请求伪造 (SSRF) 或路径遍历。

已知攻击向量

  • 通过相对缓冲区 URI 进行路径遍历(例如 'uri: ../../../etc/passwd')。
  • 服务器端 3D 缩略图生成器远程获取缓冲区时,可能遭受 SSRF 攻击。
  • 通过格式错误的递归节点层级循环导致拒绝服务。

防御性最佳实践: 禁止远程 URL,并在加载前规范化所有本地缓冲区 URI 路径。

历史渊源与里程碑

2022glTF 2.0 正式获批为国际标准,成为 ISO/IEC 12113:2022 标准。
2017科纳斯组织 (Khronos Group) 发布 glTF 2.0,将基于物理的渲染 (PBR) 作为核心功能进行标准化。
2015glTF 1.0 在 SIGGRAPH 大会上宣布,由 Fabrice Robinet、Neil Trevett 和 Tony Parisi 共同构思。

核心优势与特点

  • 人类可读的 JSON 结构允许进行程序化编辑、流水线脚本编写和可视化检查。
  • 模块化设计:将轻量级场景元数据与体积较大的二进制几何数据 (.bin) 及纹理分离。
  • PBR 材质有助于提高一致性,但结果取决于渲染器、光照和设置。

技术局限与劣势

  • 多文件复杂性:共享模型需要将 .gltf、.bin 和图像纹理压缩打包或合并在一起。
  • 由于有多个 HTTP 请求,初始网络加载速度比单文件 GLB 略慢。
  • 如果关联的纹理文件被重命名或移动,相对路径依赖关系可能会失效。

趣味技术冷知识

  • glTF 被正式昵称为"3D 领域的 JPEG",因为它专注于运行时传输和显示,而不是内容创作。
  • 该格式由 Tony Parisi 联合创立,他曾于 1994 年共同创建了 VRML(虚拟现实建模语言)。
  • 美国宇航局 (NASA) 提供探测器、卫星和宇航员的 3D 模型,供公众以 glTF 格式免费下载。

常见技术问题

为什么我的 glTF 文件缺少颜色或形状?

.gltf 文件只包含 JSON 场景说明,3D 几何数据存放在配套的 .bin 文件中,颜色纹理则存放在 .png/.jpg 文件中。请确保所有配套文件都位于同一文件夹。

如何将 glTF 文件转换为单个 GLB 文件?

将 .gltf 文件及其配套的 .bin 和纹理文件上传到 File2File.app,即可立即将它们合并为一个完整独立的 .glb 文件。

哪些程序支持 glTF?

Blender、Three.js、Babylon.js、Unity、Unreal Engine、Godot 和 Windows 3D Viewer 开箱即支持 glTF。