glTF 2.0 的支持与工作原理
- 什么是 glTF 2.0
glTF(GL Transmission Format)是一种用于高效传输和加载 3D 模型的开放标准格式,具有以下特点:
轻量化:专注于快速加载和运行时效率,适用于实时渲染场景。
跨平台:兼容多种渲染引擎(如 Filament、Three.js、Babylon.js)。
PBR 支持:内置物理材质模型,支持金属度-粗糙度的 PBR 渲染。
- glTF 2.0 的工作原理
文件结构:
.gltf:JSON 格式,描述模型的节点、材质、纹理等元信息。
.glb:二进制格式,包含 .gltf 的所有内容和资源。
纹理图像(如 PNG/JPG)和缓冲区文件(如 .bin)用于存储顶点数据和材质贴图。
加载和解析:
引擎读取 glTF 文件或 glb 文件,解析 JSON 元数据。
加载资源(如顶点数据、纹理)到内存,创建 GPU 缓存。
构建渲染管线,将顶点数据绑定到着色器,结合材质和光照完成渲染。
- Filament 中的 glTF 加载
Filament 提供了开箱即用的工具 gltfio,简化了 glTF 文件的加载过程:
加载 glTF 文件:gltfio 包含 AssetLoader,自动解析 glTF 文件并创建渲染所需的资源。
构建实体:解析 glTF 的节点树,生成 Filament 实体,附加材质、纹理和光源。
渲染:使用 Filament 的 Engine 和 Renderer 渲染加载的实体