1

C の OpenGL に現在のマトリックスがあり、次のコードを適用するとします。

   glMultMatrixf(M);
   glMultMatrixf(M2);

現在の変換行列はどのように見えますか? 赤い本では、glMultMatrix*(M) を使用すると次のようになると記載されています: CM. しかし、上記を実行すると、M2 が M の前に適用される M(M2v) が発生します。この場合、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 に答える