2012-04-16 36 views
3

我有两个4×4矩阵OPENGL -减去两个4x4矩阵 - 这可能吗?

  • 第一矩阵在框架保持对象的旋转和位置0

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

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

CMatrix4x4 offsetMatrix = matrixAtFrameX - matrixAtFrame0; 

我在做每帧的骨转换矩阵,该矩阵是变换的动画和帧频X.

  • 的第0帧之间的偏移我可以减去两个矩阵是出口?

  • 结果是什么?

+0

你可以,但它不会有意义。请参阅@AndreasBrinck的回答以获取相关信息的正确方法。 – ja72 2012-04-16 15:11:09

回答

8

你需要在第0帧

matrixOffset = inverse(matrixAtFrame0) * matrixAtFrameX 

这会给你的帧之间的相对变换和旋转与矩阵的逆矩阵相乘在帧x矩阵。

+0

对不起,我相信顺序是 '东西' 在这里 - 我应该去: 倒数(MatrixAtFrame0)* MatrixAtFrameX 或 MatrixAtFrameX *反向(MatrixAtFrame0) ? 谢谢! – PeeS 2012-04-16 15:10:21

+0

假设标准的OpenGL矩阵,并且你想要矩阵可以从0到X,那么你应该像提出的那样去回答问题。 – 2012-04-16 15:16:39

+0

完美, 谢谢! – PeeS 2012-04-16 15:21:34