1

如果我在 C 的 OpenGL 中有一个当前矩阵,并且我应用以下代码:

   glMultMatrixf(M);
   glMultMatrixf(M2);

当前变换矩阵是什么样的?在红皮书中,它指出使用 glMultMatrix*(M) 可以做到这一点:CM。但是,执行上述操作也会导致这种情况发生:M(M2v),其中 M2 在 M 之前应用。在这种情况下,M 将是左操作数,但在前 M 是右操作数。

4

1 回答 1

4

如果你这样做;

glLoadIdentity();
glMultMatrixf(M1);
glMultMatrixf(M2);
glMultMatrixf(M3);

那么得到的矩阵是M = M1 * M2 * M3;

如果你应用一个顶点v,它会像这样相乘:v' = M*v = M1*M2*M3*v

不过,我不太了解您的困惑,您所指的“前案”是什么?

于 2012-04-27T01:55:46.977 回答