static void resize(int width, int height)
{
const float ar = (float) width / (float) height;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity() ;
}
当我们改变窗口大小时,视口和投影矩阵被调整大小,但是在调整大小函数里面调用GL_MODELVIEW有什么用。
答案 0 :(得分:1)
glMatrixMode
设置当前矩阵类型。所有矩阵修改操作(glLoadIdentity
,glLoadMatrix
,glTranslatef
,...)使用当前矩阵。
给定代码将当前矩阵类型设置为投影,修改它,然后将当前矩阵设置为modelview,以便后续代码(在此函数之外)将修改模型视图而不是投影,并将其重置为单位矩阵(这可能是不必要的,具体取决于关于绘制功能)。