移動が右に来る(A)かそれとも下にくる(B)なのか?
(A)
1 0 0 x |
0 1 0 y |
0 0 1 z |
0 0 0 1 |
(B)
1 0 0 0 |
0 1 0 0 |
0 0 1 0 |
x y z 1 |
|
OpenGLのマニュアルには(A)タイプで記述してあるが、試してみる。
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glTranslatef(2.0f, 3.0f, 4.0f);
GLfloat m[16];
glGetFloatv (GL_MODELVIEW_MATRIX, m);
glPopMatrix();
この結果をデバッガで表示すると以下のようになる。
m[12] 2.0000000 float
m[13] 3.0000000 float
m[14] 4.0000000 float
(B)タイプなのか?
glの時は(A)だったような…
glのコードを
OpenGLに移植した事もあるけど、忘れてしまった。
謎が解けた。
OpenGLのマニュアルの
マトリックスは、以下の配列の並びで記述してあるようだ。
行と列が逆のような気がするけど…
m[0] m[4] m[8] m[12] |
m[1] m[5] m[9] m[13] |
m[2] m[6] m[10] m[14] |
m[3] m[7] m[11] m[15] |
|