gpt4 book ai didi

c++ - 替换 gluPerspective(使用 glFrustrum)

转载 作者:可可西里 更新时间:2023-11-01 15:37:58 26 4
gpt4 key购买 nike

如何将 gluPerspective 函数转换为 glFrustum?我曾尝试使用此等式,但运气不佳,因为它生成的图像与使用 gluPerspective 生成​​的图像不同。

top = tan(fov*3.14159/360.0) * near bottom = -top

left = aspect * bottom right = aspect * top

我似乎无法正确转换我的视野。例如,如果我的 FOV 是 45,那么 Frustum 调用中的“top”参数是什么?

最佳答案

开始吧 - 您可以使用以下方法代替 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 上找到对代码的更多解释。页面。

关于c++ - 替换 gluPerspective(使用 glFrustrum),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com