opengl - 计算 FOVX (openGL)

标签 opengl camera perspective fieldofview

在使用 openGL 透视图时,我不太确定如何从 fovy 计算 fovx。我在不同的地方阅读了不同的东西,并且使用我发现的任何一种方法都没有得到正确的行为。那么有人可以告诉我,鉴于相机的fovy和纵横比,我如何计算相机的fovx?如果需要任何其他数据也没关系,请告诉我我需要什么。非常感谢您!

最佳答案

正确的:

fieldOfViewX = 2 * atan(tan(fieldOfViewY * 0.5) * aspect)

错了,尤其是对于大方面,请参阅下面的@gman 评论:
Aspect ratio === width/height
fovy ~= "height" 
==> fovx = fovy * aspect

测试:
Fovy = 60 degs
Aspect = 4:3 ~= 1.33
Fovx = 60*1.33 = 80
80/60 = 4:3 (fovs match, yay)

对于“合理”的 fovs/aspects,简单的方法是“合理地”接近事实,但如果你有极端的方面,你会得到 fovx > 180 度,这是你不想要的。

关于opengl - 计算 FOVX (openGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504635/

相关文章:

安卓 logcat 消息 (E/SMD : DCD on)

eclipse-rcp - 如何重置 Eclipse e4 RCP 应用程序的透视图?

opengl - 现代 OpenGL 的正交投影问题

c++ - OpenGL 无效的纹理或状态

javascript - 世博会相机拍照崩溃应用程序

iphone - 有没有关于实现增强现实 iPhone 应用程序的好教程?

c++ - 显示黑色图像的几何变形

c++ - OpenCV 中的鸟瞰投影误差

c - 如何使用 VBO 绘制三角形?

opengl - 线性/非线性纹理映射扭曲的四边形