OpenGL Frustum参数设置

时间:2022-09-10 17:56:58

opengl中使用Frustum来设置透视投影,函数原型:

frustum(float left, float right, float buttom, float top, float near, float far);

 

注意,near的值不能为0。对于near不能为0,这里有数学上的解释,但其中关于“far和near的比例越大,区分临近表面的有效深度缓冲区就越少。”这句话有点不理解,按照我的理解应该是整个深度缓冲区的精度都丢失了,因为far/near无穷大。

从透视投影矩阵的推导过程理解,

xp = xe* near / -ze;

xp是投影后的坐标,xe是摄像机坐标系下的坐标,near为0,xp恒为0.推导原理是根据相似三角形。

OpenGL Frustum参数设置

透视投影的推导请参考:

http://www.songho.ca/opengl/gl_projectionmatrix.html