投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的有关部分。
投影也是使用矩阵来实现的。计算一个用于实现透视投影或者平行投影的矩阵,并把它与当前的投影矩阵(一般是单位矩阵)相乘。
OpenGL支持两种类型的投影变换,即透视投影和正投影。
一、透视投影
透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。
它的视景体类似于一个顶部和底部都被切除掉的棱椎,也就是棱台。
这个投影通常用于动画、视觉仿真以及其它许多具有真实性反映的方面。
此种情况下,需要用gluLookAt设定照相机位置、照相机方向(一般设置为(0,1,0))、以及视点位置。
1.
void glFrustum(GLdouble left, GLdouble Right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
eft,right指明相对于垂直平面的左右坐标位置
bottom,top指明相对于水平剪切面的下上位置
nearVal,farVal指明相对于深度剪切面的远近的距离,两个必须为正数
2.
void gluPerspective(GLdouble fovy,GLdouble aspect,GLd