|
|
发表于 2005-10-26 08:49:00
|
显示全部楼层
Re:请问OpenGL的投影平面--
对最佳视角fovy,有
tan(fovy/2) = h/distance;//h为物体在Y方向上的高度,distance为物体中心离视点的距离
aspect = w/h; //w为物体在X方向上宽度,h意义同上
即使由此和物体的坐标信息,我可以得到视点位置,并且知道投影平面垂直于视点和物体中心的连线(但是默认投影平面应该是垂直于Z轴的?)
====================================================
这个写得就更离谱了。
1、gluPerspective(float fovy,float aspect,float zNear,float zFar);的作用是用来定义一个视景体。
2、视景体的大小是任意的,与物体的坐标及大大小没有任何关系。
3、你可以把视景看作是一个具有六个面的台型盒子,小的那个面是zNear,大的那个面是zFar
4、绘制物体时,坐标落在这个盒子里面的部份就可以看得见,落在盒子外面那部份就被剪掉了,看不见。
5、"fovy"指的是一个角,就是盒子两个正对则面的夹角,一般可以定为30~60度之间。
6、“aspect”纵横比,不是物体的宽高比,而是窗口的宽高比,准确地说是视口宽度和高度的比,在初始化的时候我们一般会用到glViewport(x,y,width,height);这个函数,而这里面的aspect = width/height就是我们所要的纵横比。
|
|