我需要结合多个矩阵在 C++ 中做骨骼动画。
我已经得到了以下矩阵:
- 从 COLLADA 文件绑定形状矩阵。
- COLLADA 文件中每个骨骼的骨骼矩阵。
- 为 COLLADA 文件中的每个骨骼绑定姿势矩阵。
- 计算每个骨骼的反向绑定姿势矩阵。
- 来自 COLLADA 文件的动画的每个骨骼的每一帧的帧矩阵。
我们称这些矩阵为:
- bindShapeTrans (XMFloat4X4)
- localBoneTrans(XMFloat4X4 的向量)
- bindPoses(XMFloat4X4 的向量)
- invBindPoses(XMFloat4X4 的向量)
- 动画(XMFloat4X4 向量的向量)
现在我必须从这些矩阵中创建一个矩阵数组以传递给我的顶点着色器,它使用它来计算考虑到它们的权重的顶点的最终位置。
在这里我迷路了。我已经阅读了很多教程,但是它们都对组合矩阵的顺序提出了不同的看法。他们还为矩阵使用不同的名称,现在我完全糊涂了。
那么,我该如何组合这些矩阵以获得正确的最终矩阵呢?
谢谢您的帮助。