Des*_*air 42 opengl perspectivecamera perspective
我想知道gluPerspective
参数.
在我看到的所有例子中fovy
都设置为大约45-60度,我试图将其设置为不同的值,对象只是消失了对它的解释?
该aspect
值应始终比例是多少?为什么要改变它?
zNear, zFar
- 再次通常的值大约是10和500+它反映的是什么?
小智 81
4个参数的目的是定义视锥体,如下所示:
在屏幕上看不到平截头体外的任何东西(为了实现这一点,参数用于计算4x4矩阵,然后用于将每个顶点转换为所谓的剪辑空间.在那里,测试顶点是否是在平截头体内部或者不是微不足道的)
视场参数基本上是通过摄像机位置的平面以及屏幕顶部和通过摄像机位置和屏幕底部的另一个平面之间的角度.这个角度越大,你对世界的看法就越多 - 但与此同时,你能看到的物体会变小.
为了观察它的影响,我建议编写一个简单的应用程序,你可以通过按键逐渐增加/减少fov - 然后渲染一些球体或其他基本物体,看看当你改变它时会发生什么.
宽高比是视口的宽高比.(在上图中,视口位于近剪裁平面)由于视口的纵横比可能不同,因此能够定义它是有意义的.
zNear和zFar值分别定义摄像机位置与近剪裁平面和远剪裁平面之间的距离.没有比zFar更接近相机的东西,也不会比zFar更远.两个值必须> 0,显然,zFar> zNear.理想情况下,应选择zFar,以便您想要渲染的所有内容都可见,但使其大于必要时会浪费深度缓冲区预测并可能导致闪烁效果,称为z-fighting.同样,将zNear设置得太靠近相机可能会产生相同的效果 - 实际上,具有合理的zNear值比zFar更重要.如果你想知道为什么会发生这种情况,你应该阅读一些深入的解释,比如这一个或者这个