glTF 2.0 中节点和子项之间的关系

Posted

技术标签:

【中文标题】glTF 2.0 中节点和子项之间的关系【英文标题】:Relation between entries in node and children in glTF 2.0 【发布时间】:2021-11-29 03:45:39 【问题描述】:

我正在为 R 中的 glTF/GLB 文件编写阅读器。阅读 https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html 的规范后,我不清楚节点与其子节点之间的关系。

节点可能具有定义变换的属性(matrixrotationscaletranslation)。它的孩子会继承这个变换吗?如果他们指定了自己的变换,它是替换父变换,还是由它组成?

它也可能有一个camera 规范。如果孩子也有一个,它会取代父级,还是以某种方式组合在一起?

【问题讨论】:

【参考方案1】:

子节点的变换总是与父节点组成。例如,如果父级具有 +5 X 平移,而子级具有 90 度 Y 旋转,则生成的子网格将定位在 +5 X 处并具有旋转方向。

请注意,matrix 与其他三个(translationrotationscale)互斥,因此给定节点不得将matrix 与任何其他形式的转换混合。但是,父级可以将 matrix 与使用其他 3 个转换的子级一起使用,反之亦然。

camera 通常出现在叶节点上,尽管这不是必需的。如果父母和孩子都拥有camera 对象,则它们被视为两个独立的相机,尽管重新定位父母时孩子的相机会移动。

如果您让 glTF 在 R 中工作,请让我们知道https://github.com/KhronosGroup/glTF-Project-Explorer 的问题或 PR,谢谢!

【讨论】:

请注意github.com/KhronosGroup/glTF/issues/1058:他们现在要求采用不同的方法来宣布项目,如github.com/KhronosGroup/glTF-Project-Explorer 中所述。 更新了链接,谢谢!

以上是关于glTF 2.0 中节点和子项之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

无法解析角度离子项目的依赖关系树

如何显示不同节点之间的关系

如何理解配置图中节点之间的关联关系,它和类之间的关联关系有啥联系

glTF模型在线查看利器glTF Viewer 2.0

glTF模型在线查看利器glTF Viewer 2.0

具有1:n关系的SQL查询,查找具有两个匹配子项匹配的所有实体