|
|
最近刚开始学习opengl,写了一个例子:
- #include <Gl/glut.h>
- #include <GL/gl.h>
- void display()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glLineWidth(2.0);
- glMatrixMode(GL_MODELVIEW);
- [b]//glLoadIdentity();[/b]
- glColor3f(0.0,0.0,0.0);
- glTranslatef(2.0,2.0,0.0);
- glutWireCube(1.0);
- glFlush();
- }
- void reshape(GLsizei w,GLsizei h)
- {
- glViewport(0,0,w,h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-2.0,2.0,-2.0,2.0,2.0,10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- gluLookAt(0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0);
- }
- int main()
- {
- glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
- glutInitWindowSize(400,400);
- glutInitWindowPosition(100,100);
- glutCreateWindow("test");
- glClearColor(1.0,1.0,1.0,0.0);
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMainLoop();
- return 0;
- }
复制代码
在上面的代码中,如果把display()里面的glLoadIdentity();去掉,就可以正常显示,如果不去掉
就无法显示图形,只能看到白色的背景。
我始终觉得glLoadIdentity()只是重置模型视点矩阵,不知道怎么会影响投影矩阵的?
请大家赐教 |
|