OPENGL 两个 LoadIdentity

OPENGL Two LoadIdentitys

当我执行两个 glLoadIdentity() 时, 它看起来像它的 2d:

glMatrixMode(GL_PROJECTION_MATRIX);
glLoadIdentity();
gluPerspective( 90, (double)windowWidth / (double)windowHeight, 0.1, 100 );

glMatrixMode(GL_MODELVIEW_MATRIX);
glLoadIdentity();
Camera.Render(); // (gluLookAt)

但是,当我移除最后一个时,它可以工作,但光线似乎随着相机移动:

glMatrixMode(GL_PROJECTION_MATRIX);
glLoadIdentity();
gluPerspective( 90, (double)windowWidth / (double)windowHeight, 0.1, 100 );

glMatrixMode(GL_MODELVIEW_MATRIX);
Camera.Render(); // (gluLookAt)

您正在向 glMatrixMode 传递无效参数。

尝试传递 GL_PROJECTION/GL_MODELVIEW 而不是 GL_PROJECTION_MATRIX/GL_MODELVIEW_MATRIX 给他们。