我正在尝试在我编写的DirectX程序中播放动画。 我使用FBX SDK来获取网格数据。
我正在制作动画。这是非常简单的空闲动画,并且效果很好。我还有另一个具有相同网格物体的动画,但是该网格物体看起来确实很奇怪。
我将附上这两个动画的图片。不起作用的动画比空闲动画更复杂。 我计算蒙皮网格物体的顶点位置的方式是通过发送“约束”矩阵数组(阵列中的每个矩阵用于网格中的每个关节),以及发送绑定姿势中的关节的另一个矩阵矩阵。 绑定姿势矩阵被求逆。
在我的顶点着色器中,我将顶点位置乘以反向绑定姿势矩阵,然后将“约束”矩阵(即,我计算出要在关键帧之间过渡的关节的矩阵)乘以权重以得到一个新位置。
(此外,网格没有任何问题)
我不确定我要去哪里。如果我错过了任何细节,请告诉我。
编辑:进一步检查后,我认为其他动画也不正确,但恰好发生在最小移动范围内,因此看起来不错。
好:
坏: