你如何将gluPerspective函数转换为glFrustum?我试图使用这个等式,但没有任何运气,因为它没有生成与gluPerspective相同的图像.
top = tan(fov*3.14159/360.0)*靠近底部= -top
left = aspect*bottom right = aspect*top
我似乎无法正确转换我的视野.比方说,如果我的FOV是45,那么Frustum电话中的"顶级"参数是什么?
tig*_*ero 27
我们走了 - 您可以使用以下方法替换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 );
}
Run Code Online (Sandbox Code Playgroud)
你可以找到的代码的一些解释讷河页.