当我做两个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传递给他们。

10-08 08:59