OpenGL函数描述

时间:2012-08-24 12:03:11

标签: function glut freeglut

有人可以解释以下每个OpenGL函数的功能吗?

glMatrixMode(GL_PROJECTION);
glLoadIdentity(); 
glOrtho(0.0, (GLdouble)w, 0.0, (GLdouble)h, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

1 个答案:

答案 0 :(得分:0)

请记住,OpenGL可以作为状态机使用。

glMatrixMode(GL_PROJECTION);

将当前矩阵设置为投影矩阵,即活动矩阵状态是投影矩阵,因此所有后续矩阵调用都将影响投影矩阵。投影矩阵处理事物的查看方式(相机的设置方式)。

glLoadIdentity(); 

将当前矩阵的值设置为单位矩阵。当前矩阵是投影矩阵。

glOrtho(0.0, (GLdouble)w, 0.0, (GLdouble)h, -1.0, 1.0);

来自OpenGl的文档:“将当前矩阵与正交矩阵相乘”。因此,投影矩阵(想象相机)被转换为显示正交视角。

glMatrixMode(GL_MODELVIEW);

将当前矩阵设置为模型视图矩阵。模型视图矩阵处理对象的显示方式。模型视图转换可以旋转或转换对象。

所以基本上前三行设置了相机,最后两行将当前矩阵设为模型视图矩阵,因为程序设置完成后需要显示对象。 OpenGL中没有实际的摄像头。相机的想法只是一个常见的类比。