OpenGL透视投影gluPerspective

转自:http://blog.csdn.net/hbuxiaoshe/article/details/5062794

void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear, GLdouble zFar);
其操作是创建一个对称的透视投影矩阵,并且用这个矩阵乘以当前矩阵。
参数fovy定义视野在X-Z平面的角度,范围是[0.0, 180.0];
参数aspect是投影平面宽度与高度的比率;
参数zNear和Far分别是远近裁剪面沿Z负轴到视点的距离,它们总为正值。
这里写图片描述
参数fovy可以理解为“眼睛睁开的角度”,角度所及的范围就是窗口绘制的范围。角度小,看到的物体大,角度大,看到的物体小。当fovy为180时,窗口相对物体来说是无限大的,此时窗口上显示的物体则缩小为一个点。类似焦距的功能。
这里写图片描述
默认情况下,视点在坐标轴原点,坐标轴未做任何变换的话,原点就是屏幕(显示器)中心。

在NeHe的框架中,zNear=0.1f,zFar=100.0f,如果想绘制图形的话,需要将坐标轴移入屏幕,zFar>移入距离>zNear。

原文地址:https://www.cnblogs.com/laohaozi/p/12538365.html