DirectX动画

时间:2018-12-13 21:56:03

标签: c++ c++11 animation directx directx-11

我正在尝试在我编写的DirectX程序中播放动画。 我使用FBX SDK来获取网格数据。

我正在制作动画。这是非常简单的空闲动画,并且效果很好。我还有另一个具有相同网格物体的动画,但是该网格物体看起来确实很奇怪。

我将附上这两个动画的图片。不起作用的动画比空闲动画更复杂。 我计算蒙皮网格物体的顶点位置的方式是通过发送“约束”矩阵数组(阵列中的每个矩阵用于网格中的每个关节),以及发送绑定姿势中的关节的另一个矩阵矩阵。 绑定姿势矩阵被求逆。

在我的顶点着色器中,我将顶点位置乘以反向绑定姿势矩阵,然后将“约束”矩阵(即,我计算出要在关键帧之间过渡的关节的矩阵)乘以权重以得到一个新位置。

(此外,网格没有任何问题)

我不确定我要去哪里。如果我错过了任何细节,请告诉我。

编辑:进一步检查后,我认为其他动画也不正确,但恰好发生在最小移动范围内,因此看起来不错。

好:

Good Animation Screenshot 1

Good Animation Screenshot 2

坏:

Bad Animation Screenshot 1

Bad Animation Screenshot 2

Bad Animation Screenshot 3

0 个答案:

没有答案