一直没有找到很好的解释,或者解释复杂简短,还是自己动手测试一下,测试步骤如下:
1.输入glTranslatef(0.1,0.1,0.0);
得到的GL_MODELVIEW_MATRIX的值为:
说明变换矩阵变换的是12,13,14,15这几个变量,问题又产生了,12,13,14,15又是最后一行还是最后一列呢?
2.输入
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat mat[] = {//检验矩阵的存储形式,
1.0, 0.0, 0.0, 1.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
};
glMultMatrixf(mat);
GLfloat Test[16];
glGetFloatv(GL_MODELVIEW_MATRIX,Test);
得到如下结果图:
说明在内存当中还是按行存储的。要不然Test【3】== 0.0,
改动代码如下:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.1,0.1,0.0);
GLfloat mat[] = {//检验矩阵的存储形式,
1.0, 0.0, 0.0, 1.0,
0.0, 1.0, 0.0, 0.0,