节点中的条目与 glTF 2.0 中的 children 之间的关系

Relation between entries in node and children in glTF 2.0

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

节点可能具有定义转换的属性(matrixrotationscaletranslation)。它的 children 是否继承了这个转换?如果他们指定自己的变换,它会替换 parent 变换,还是与它组合?

它也可能有 camera 规格。如果 child 也有一个,它会取代 parent 那个,还是它们以某种方式组合在一起?

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

注意matrix与其他三个(translationrotationscale)是互斥的,所以给定的节点一定不能混用matrix 与任何其他形式的转换。但是,parent 可以将 matrix 与 children 一起使用,后者使用其他 3 个转换,反之亦然。

通常 camera 出现在叶节点上,尽管这不是必需的。如果 parent 和 child 都有 camera objects,它们被认为是两个独立的相机,尽管 child 的相机会在 [=33] 时移动=] 重新定位。

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