glTF
相关链接¶
类型 | 资源 | 说明 |
---|---|---|
glTF官方网站 | Github仓库 | |
glTF标准书 | Github仓库中的标准书;gltf2.0标准书文档 | |
glTF教程 | 1. Github仓库中的教程;glTF教程(中文翻译) | |
glTF模型 | 官方文件示例 | |
glTF渲染器 | 1. OpenGL 4.5渲染glTF(包含pbr) 2. Vulkan渲染glTF(包含pbr) |
引言¶
在WebGL(包括所有GPU图形渲染编程)的眼里,它只认识:顶点、顶点颜色、顶点法线、着色语言……
所以,三维图形界的通用格式:glTF应运而生。glTF面向终点(数据的最终都是渲染与展示),它直接按照图形编程所需的格式来存储数据,借以二进制编码提高传输速度。
- 它不再使用 面向对象的思维 存储三维模型、贴图纹理,而是按 显卡的思维存储 。存的是顶点、法线、顶点颜色等最基础的信息,只不过 组织结构上进行了精心的设计 。
- 它面向终点,就意味着可编辑性差,因为渲染性能的提高牺牲了可编辑性,它不再像3ds、dae甚至是max、skp一样容易编辑和转换。
而且,大多数三维软件提供了glTF格式的转换,或多一步,或一步到位。
背景¶
- 如今已经存在的3D格式:有一些没有包含场景信息;有一些虽然包含了场景信息,但这些场景信息只适用于某些特定软件。因此,许多时候,我们都需要对几何数据进行预处理之后,才能进行渲染
- 现存的3D数据格式不方便在网上传输,以及直接进行高效渲染
目标¶
glTF,Graphics Language Transmission Formator,图形语言传输格式。由Khronos 3D标准组织创建与管理。
glTF格式是开放的3D模型和场景格式,旨在为3D数据格式提供一个统一的标准,以有效地传输丰富的场景3D数据,与方便应用程序的读取与渲染。
glTF的目标是作为一个中转格式,而不是一个新的3D格式。
- 使用JSON来描述场景结构,可以方便地被应用程序分析处理
- 3D数据以一种可以被大多数图形API直接使用的方式进行存储,不需要应用程序进行解码或预处理操作
特点¶
- 数据块连续存储
- 提供视图、访问器的概念
- 逻辑层与数据层分离
- 逻辑层用JSON保存
优点¶
易于读写
快速高效
直接读取游戏引擎
来自标准组的指导
丰富的场景数据
增强现实
缺点¶
不可编辑的3D模型
无着色器网络
非向后兼容扩展
当前的应用情况¶
- 目前已经有一些3D内容创建软件可以将3D场景以glTF的格式进行存储
- 一些应用程序也可以直接进行glTF场景数据的渲染
- 几乎所有的3D内容创作软件都支持将场景导出到COLLADA格式,所以可以用此格式作为中转