我想知道gluPerspective
参数。
在所有的例子中,我看到fovy
被设置为45-60度左右,我试着将它设置为不同的值,但物体消失了,这是怎么解释的?
aspect
值应该始终是比率?为什么要改变它呢?
zNear, zFar
-再一次,通常的值在10左右,500+,它反映了什么?
发布于 2013-05-16 04:10:33
这4个参数的目的是定义一个视图截体,如下所示:
在屏幕上看不到平截体之外的任何东西(为此,参数用于计算4x4矩阵,然后使用该矩阵将每个顶点转换到所谓的剪辑空间。在那里,测试顶点是否在锥体内部是微不足道的)
视野参数基本上是穿过相机位置的平面和屏幕顶部之间的角度&另一个穿过相机位置的平面和屏幕底部之间的角度。这个角度越大,你能看到的世界就越多-但同时,你能看到的物体也会变小。
为了观察它的影响,我建议编写一个简单的应用程序,你可以通过按键逐渐增加/减少视场,然后渲染一些球体或其他基本对象&看看当你改变它时会发生什么。
纵横比是视口的纵横比。(在上图中,视口位于近剪裁平面)能够随意定义它是有意义的,因为视口的纵横比可能会有所不同。
zNear和zFar值分别定义摄影机位置与近剪裁平面和远剪裁平面之间的距离。任何比zNear更靠近相机,或者比zFar更远的东西都是不可见的。两个值都必须大于0,显然,zFar > zNear。理想情况下,应该选择zFar,以便您想要渲染的所有内容都是可见的,但是将其设置得比必要的大会浪费深度缓冲区压缩&可能会导致闪烁效果,称为z-fighting。同样,将zNear设置得太靠近摄影机可能会产生相同的效果-事实上,具有合理的zNear值比zFar更重要。如果您想知道发生这种情况的确切原因,您应该阅读一些深入的解释,如this one或this one
https://stackoverflow.com/questions/16571981
复制相似问题