定义
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]。
参见
参考资料
- glTF - Runtime 3D Asset Delivery [引用日期2026-10-14]
- Press Releases [引用日期2026-10-14]
- ISO/IEC 12113:2022 [引用日期2026-10-14]
- GLTF - GL Transmission File Format [引用日期2026-10-14]
- glTF [引用日期2026-10-14]
- Strong glTF Ecosystem Momentum at SIGGRAPH 2017 [引用日期2026-10-14]
- Call for feedback on glTF 2.0 [引用日期2026-10-14]
- Khronos为3D场景和模型高效传输带来glTF重大里程碑 [引用日期2026-10-14]
- 크로노스그룹 glTF 2.0 표준 발표 [引用日期2026-10-14]
- GlTF - Wikipedia, la enciclopedia libre [引用日期2026-10-14]
- fdd000500 [引用日期2026-10-14]
- glTF format [引用日期2026-10-14]
- Revision bf8a954c-0c74-4670-9fa7-87824eafaf89 [引用日期2026-10-14]
- SIGGRAPH 2022 [引用日期2026-10-14]