7

我有两个 4x4 OPENGL 矩阵 -

  • 第一个矩阵在第 0 帧保存对象的旋转和位置。

  • 第二个矩阵保存对象在第 X 帧的旋转和位置;

我想检索一个对象在第 0 帧和 X 之间的移动偏移量,如果我只是减去两者,这是否足够(可能)?

CMatrix4x4 offsetMatrix = matrixAtFrameX - matrixAtFrame0;

我正在做的是每帧导出骨骼变换矩阵,其中该矩阵是动画的第 0 帧和第 X 帧之间的变换的偏移量。

  • 我可以减去两个矩阵吗?

  • 结果如何?

4

1 回答 1

13

您需要将第 x 帧的矩阵乘以第 0 帧的矩阵的逆矩阵。

matrixOffset = inverse(matrixAtFrame0) * matrixAtFrameX

这将为您提供帧之间的相对变换和旋转。

于 2012-04-16T15:06:39.947 回答