我正在尝试将 *.x 文件导入我的引擎并使用 OpenGL 为它们设置动画(目前没有着色器,但现在这并不重要)。我在 MSDN 上找到了格式参考,但对问题没有多大帮助。
所以 - 基本上 - 我创建了一个文件,其中包含一个类似恶魔的简单动画,它有 7 根骨头(主要,2 根尾巴,4 根腿),其中只有 2 根(右腿)目前是动画的。我已经在 DXViewer 中测试了网格,它似乎在那里工作得很好,所以问题一定出在我的代码方面。
当我导出网格时,我得到一个包含大量信息的文件,其中有 3 个重要的位置用于骨骼动画(以下所有矩阵都用于 RLeg2 骨骼):
SkinWeights - matrixOffset
-0.361238, -0.932141, -0.024957, 0.000000, 0.081428, -0.004872, -0.996669, 0.000000, 0.928913, -0.362066, 0.077663, 0.000000, 0.139213, -0.057892, -0.009323, 1.000000
帧变换矩阵
0.913144, 0.000000, -0.407637, 0.000000, 0.069999, 0.985146, 0.156804, 0.000000, 0.401582, -0.171719, 0.899580, 0.000000, 0.000000, -0.000000, 0.398344, 1.000000
绑定姿势中的 AnimationKey 矩阵
0.913144, 0.000000, -0.407637, 0.000000, 0.069999, 0.985146, 0.156804, 0.000000, 0.401582, -0.171719, 0.899580, 0.000000, 0.000000, -0.000000, 0.398344, 1.000000
我的问题是——我究竟该如何处理这些矩阵?我在纽卡斯尔大学网站 ( http://research.ncl.ac.uk/game/mastersdegree/graphicsforgames/skeletalanimation/ ) 上找到了一个方程式,但那里只有 1 个矩阵。问题是 -如何组合这些矩阵以获得顶点变换矩阵?