Visual LabINTERACTIVE LEARNING
OpenGL 与 3D精校教程

glTF 数据结构

沿 Scene → Node → Mesh → Primitive → Accessor → BufferView → Buffer 读懂模型数据。

glTFAccessorBuffer
进阶预计 12 分钟查看源文 ↗

gltf结构说明

obj2gltf

json描述文件结构图解

Node

总结

一个 glTF 文件中可能存储了多个场景,每个场景包含一个 nodes 数组,这些是场景图中根节点的索引。这些节点可以通过递归地访问它们的所有子节点来处理附加到这些节点的所有元素。每个节点都可以有一个变换,这样的变换将应用于节点本身以及所有子节点的所有元素。变换可以直接由节点的 matrix 属性给出,也可以使用节点的 translation,rotation 和 scale 属性来给出,这些属性是节点的本地变换的矩阵的乘积。当需要全局变换时,它需要从当前节点的所有局部变换中计算出来。

摘要

本文介绍了如何在 glTF 文件中表示场景和节点。一个 glTF 文件中可能存储了多个场景,每个场景包含一个 nodes 数组,这些是场景图中根节点的索引。这些节点可以通过递归地访问它们的所有子节点来处理附加到这些节点的所有元素。每个节点都可以有一个变换,这样的变换将应用于节点本身以及所有子节点的所有元素。变换可以直接由节点的 matrix 属性给出,也可以使用节点的 translation,rotation 和 scale 属性来给出,这些属性是节点的本地变换的矩阵的乘积。当需要全局变换时,它需要从当前节点的所有局部变换中计算出来。

观点

变换可以直接由节点的 matrix 属性给出,也可以使用节点的 translation,rotation 和 scale 属性来给出。这些属性是节点的本地变换的矩阵的乘积。变换可以应用于节点本身以及所有子节点的所有元素。当需要全局变换时,它需要从当前节点的所有局部变换中计算出来

Buffers, BufferViews, and Accessors

主要介绍了 glTF 文件中的缓冲区、缓冲区视图和访问器对象的概念和用法。

摘要

glTF 文件中的缓冲区对象表示一个原始的二进制数据块,没有固有的结构或意义。缓冲区视图对象表示缓冲区数据的一个“切片”,使用偏移量和长度来定义。访问器对象引用缓冲区视图对象,并包含描述数据类型和布局的属性。

缓冲区数据可以被分成多个部分,每个部分由一个缓冲区视图对象描述。缓冲区视图对象还包含一个 target 属性,用于指示数据的类型或性质。

访问器对象引用缓冲区视图对象,并包含描述数据类型和布局的属性。数据类型由 type 和 componentType 属性编码。type 属性指定数据元素是标量、向量还是矩阵,componentType 属性指定数据元素的组件类型。

访问器对象还包含描述数据布局的属性,如 count 和 byteOffset。数据必须根据其类型进行对齐,以便在图形卡上使用或在主机端用于动画或骨骼数据。

观点

glTF 文件中的缓冲区、缓冲区视图和访问器对象是 glTF 文件中数据组织和访问的基础。它们允许在 glTF 文件中存储和访问各种类型的数据,包括顶点属性、索引和动画数据。这些对象的使用可以使 glTF 文件更加灵活和高效。