glTF

关注
义项:3D 场景传输格式标准
glTF

glTF是科纳斯集团(Khronos)制定的一种用于在引擎和应用程序之间高效传输和加载三维场景与模型的免版税格式标准,全称图形库传输格式(GL Transmission Format),常被其制定者称为「三维领域的JPEG」[1]。它以JSON描述场景结构,配合二进制缓冲与贴图文件,力求在压缩资产体积的同时减少运行时的解包开销,并被WebGL及其他图形接口的应用广泛采用[2]。2022年,glTF 2.0 以 ISO/IEC 12113:2022 国际标准的形式发布[3]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

glTF是一种与图形接口无关的运行时资产交付格式,用来在三维内容创作工具与现代图形应用之间传递和加载三维内容[3]。它规定的不是某个引擎的私有格式,而是一个可扩展、可互操作的公开发布格式,目标是让同一份三维资产能够被不同平台上的工具、引擎与查看器读取[1]。

一个glTF资产通常由若干部分组成:一份JSON文本文件描述节点层级、相机、网格、材质和动画等信息;一个二进制文件存放顶点、索引、关键帧与蒙皮矩阵等缓冲数据;以及采用JPEG、PNG等格式的贴图图像[4]。为了便于分发,这些内容也可以被合并进单个二进制容器文件,扩展名为glb[5]。

原理

glTF的核心是一段JSON描述,它只承载结构与引用关系,真正占体积的几何与动画数据被放在外部或内嵌的二进制缓冲区中,贴图则单独存放并在JSON里通过统一资源标识符引用[4]。这种分工使解析器可以用通用方式读取JSON,再直接把二进制数据映射到图形接口的缓冲区,从而压缩解包步骤[1]。

在2.0版本中,材质改用基于物理的渲染模型描述,通过基色、金属度和粗糙度等少量参数控制表面的反射与光泽表现,渲染器再根据这些参数生成各自的着色代码[6]。这一设计让同一份材质定义可以移植到WebGL、Direct3D、Vulkan或Metal等不同接口,而1.0版本中依赖GLSL着色器定义材质的做法则被移到扩展中[7]。

格式允许通过扩展机制扩展自身的任何部分,经科纳斯批准的扩展被广泛采用,也可能被纳入未来的核心规范;模型使用到的扩展需在顶层的extensionsUsed数组中列出,必需扩展则记入extensionsRequired数组[1]。

发展历程

glTF的早期工作可追溯至2012年前后,当时科纳斯围绕WebGL的发展评估三维资产传输的需求,随后出现了基于JSON的格式演示[4]。2015年10月,科纳斯宣布glTF 1.0规范定稿,可供工具与应用厂商使用,其首要目标是让三维资产能够被WebGL应用高效加载[2]。

2016年7月,科纳斯发布了开源验证器与glTF 1.0.1规范,并使该格式在互联网数字分配机构注册为MIME类型,便于文件在不同生态中被正确识别[8]。验证器在使用中暴露出不少可改进之处,推动工作组决定尽早推出包含不向后兼容改动的新版本[7]。

2017年6月,glTF 2.0在Web3D 2017会议上发布,新增基于物理的渲染材质定义、改进的动画系统,并把二进制格式并入核心规范[9]。2022年7月,glTF 2.0 以 ISO/IEC 12113:2022 的形式成为国际标准,标准正文共189页[3]。

应用

glTF被多种开源渲染引擎和框架所支持,包括three.js、Babylon.js、Cesium、xeogl与A-Frame等[10]。内容创作工具方面,Blender、Maya、3ds Max等软件可通过导出器或插件输出该格式,也有工具把COLLADA、FBX、OBJ等格式转换为glTF[8]。

在商业与平台侧,微软把glTF用于Paint 3D并向Office文档中加入三维内容,Sketchfab提供大量可供下载的glTF模型,Facebook支持以该格式创建三维帖子[11]。地理信息领域同样采用它,开放地理空间信息联盟的三维瓦片规范把glTF 2.0列为规范性参考[11]。

局限

glTF面向交付而非创作,适合作为最终使用的资产格式,并不用于保存带图层或历史记录的项目源文件[12]。它也不适合需要精确几何的工程与制造场景:规范缺少对精确CAD数据、NURBS曲面和构造历史的支持,精度方面属于近似表示[12]。

几何压缩扩展存在能力边界,KHR_draco_mesh_compression 目前不支持点云;可选的 KHR_mesh_quantization 与 EXT_meshopt_compression 可处理点云,但压缩会产生精度损失,且不同查看器对扩展的支持程度并不一致[13]。此外,程序化纹理等高级特性需要依赖引擎特定的扩展,可能影响互操作性[12]。

作为包含JSON、二进制缓冲和贴图的多文件格式,glTF在分发时通常需要额外的打包步骤或改用单文件容器;当模型体积过大时,单个文件也可能超出多数工具的处理能力[14]。

参见

  • WebGL —— 浏览器端的三维图形接口,glTF 最初即面向它设计。

  • 基于物理的渲染 —— glTF 2.0 描述材质的核心方法。

  • Draco —— 面向三维网格的几何压缩方案,以扩展形式用于 glTF。

  • COLLADA —— 早于 glTF 的三维交换格式,二者存在转换工具。

  • ISO —— glTF 2.0 于 2022 年成为其国际标准。

参考资料

  1. glTF - Runtime 3D Asset Delivery [引用日期2026-10-14]
  2. Press Releases [引用日期2026-10-14]
  3. ISO/IEC 12113:2022 [引用日期2026-10-14]
  4. GLTF - GL Transmission File Format [引用日期2026-10-14]
  5. glTF [引用日期2026-10-14]
  6. Strong glTF Ecosystem Momentum at SIGGRAPH 2017 [引用日期2026-10-14]
  7. Call for feedback on glTF 2.0 [引用日期2026-10-14]
  8. Khronos为3D场景和模型高效传输带来glTF重大里程碑 [引用日期2026-10-14]
  9. 크로노스그룹 glTF 2.0 표준 발표 [引用日期2026-10-14]
  10. GlTF - Wikipedia, la enciclopedia libre [引用日期2026-10-14]
  11. fdd000500 [引用日期2026-10-14]
  12. glTF format [引用日期2026-10-14]
  13. Revision bf8a954c-0c74-4670-9fa7-87824eafaf89 [引用日期2026-10-14]
  14. SIGGRAPH 2022 [引用日期2026-10-14]
词条评价
词条统计

浏览次数:3 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T22:03:50Z

历史版本

本条目引用的词条
WebGL 基于物理的渲染 Draco COLLADA ISO