计算opengl中glPerspective的near和far值

时间:2012-12-15 21:29:23

标签: opengl distance

我需要在opengl代码中传递glPerspective中的near和far值。我通过在顶点着色器中乘以ModelViewMatrix来获取眼睛空间中的所有顶点。我的问题是,我需要找到最小值和最大值,以便我可以将该值传递给glPerspective。我该怎么办?我是否需要在顶点着色器或客户端空间(C代码)中计算它们?

1 个答案:

答案 0 :(得分:0)

near和far通常不会计算,但只需设置为合理的值。 'near'应该足够近,以至于没有剪切近物体,但不能接近所有z缓冲精度消失。 “远”只需要远离你想要呈现的任何东西。

无论如何,顶点着色器不是计算它们的最佳位置,因为矩阵会传递到着色器,因此您需要在到达之前知道这些值。

(对于像阴影这样的东西动态计算近/远可能是可行的/有用的,你需要高精度 - 在这种情况下,它基于你想要渲染的对象的边界体积,或者其他一些这样的近似)。