gluLookAt 与 gluPerspective 动画解析

gluLookAt 与 gluPerspective 动画解析


函数原型

void gluLookAtGLdouble 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负轴到视点的距离,它们总为正值。即透视图截取段中,两头离镜头的距离.




GIF太大......不能上传

http://hi.baidu.com/yulinxx_/item/8c0d9f4786eb4e166dc2f0e2

你可能感兴趣的:(OpenGL)