• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

替代gluPerspective(与glFrustrum)

c/c++ 来源:DorkMonstuh 3次浏览

如何将gluPerspective函数转换为glFrustum?我尝试过使用这个公式,但没有运气,因为它没有像gluPerspective一样产生相同的图像。替代gluPerspective(与glFrustrum)

顶部= TAN(FOV * 3.14159/360.0)*邻近 底部= -top

左=方面*底部 右=方面*顶部

我似乎无法正确转换我的视野。比如说,如果我的FOV是45,那么Frustum呼叫中的“顶级”参数是什么?


===========解决方案如下:

在这里,我们去 – 你可以用下面的方法为更换gluPerspective的:

void perspectiveGL(GLdouble fovY, GLdouble aspect, GLdouble zNear, GLdouble zFar) 
{ 
    const GLdouble pi = 3.1415926535897932384626433832795; 
    GLdouble fW, fH; 

    //fH = tan((fovY/2)/180 * pi) * zNear; 
    fH = tan(fovY/360 * pi) * zNear; 
    fW = fH * aspect; 

    glFrustum(-fW, fW, -fH, fH, zNear, zFar); 
} 

你可以找到的代码nehe页面上的一些更多的解释。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)