gltf 你如何处理 latex 引用?

gltf how do you deal with latice references?

我正在使用装配图 gltf:

不是post整个gltf,我会post相关节点:

      {
        "children": [
            21,
            1
        ],
        "matrix": [
            1.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            -1.0,
            0.0,
            0.0,
            1.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            1.0
        ],
        "name": "Z_UP"
    },
    {
        "mesh": 0,
        "skin": 0,
        "name": "Proxy"
    },

    ...

    {
        "translation": [
            0.0,
            0.06650590896606446,
            0.0
        ],
        "rotation": [
            4.2157907720330458e-10,
            0.9999844431877136,
            -0.005583992227911949,
            -7.549667913053783e-8
        ],
        "scale": [
            1.0,
            1.0000001192092896,
            1.0
        ],
        "name": "neck_joint_2"
    },
    {
        "children": [
            2
        ],
        "name": "Armature"
    }

因此节点 0 是节点 1 和节点 21 的父节点。但是节点 1 中的皮肤的关节从节点 2 开始。即节点 1 中的皮肤是由节点定义的骨架的“父节点”从 2 到 21.

那么问题来了,节点 0 中的变换是否应该应用到皮肤中的节点两次?

glTF Specifications — Skins...

Client implementations should apply only the transform of the skeleton root node to the skinned mesh while ignoring the transform of the skinned mesh node.

因此在此示例中,节点 1 的继承世界变换未应用于皮肤的 joints/bones。换句话说,节点-皮肤关系不会对皮肤的关节应用任何变换。