gluLookAt 与 gluPerspective 动画解析
函数原型
void gluLookAt( GLdouble eyex,GLdouble eyey,GLdouble eyez,
GLdouble centerx,GLdouble centery,GLdouble centerz,
GLdouble upx,GLdouble upy,GLdouble upz);
该函数定义一个视图矩阵,并与当前矩阵相乘。
第一组eyex, eyey,eyez 相机在世界坐标的位置
第二组centerx,centery,centerz 相机镜头对准的物体在世界坐标的位置
第三组upx,upy,upz 相机向上的方向在世界坐标中的方向
你把相机想象成为你自己的眼睛:
第一组数据就是眼睛的位置
第二组数据就是眼睛看的物体的位置
第三组就是头顶朝向的方向(因为你可以歪着头看同一个物体,甚至自己倒立着看)
========================================================
void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear, GLdouble zFar);
其操作是创建一个对称的透视投影矩阵,并且用这个矩阵乘以当前矩阵。
参数fovy定义视野在X-Z平面的角度,范围是[0.0, 180.0]; 相当于镜头宽度..角度越大,视野越宽.广角镜头了...
参数aspect是投影平面宽度与高度的比率;宽高比不正常,则显示会压缩或拉伸.
参数zNear和Far分别是远近裁剪面沿Z负轴到视点的距离,它们总为正值。即透视图截取段中,两头离镜头的距离.