我是靠谱客的博主 从容奇迹,这篇文章主要介绍OpenGL由FOVY计算FOVX,现在分享给大家,希望可以做个参考。

在项目中遇到这样一个问题:已知摄像机垂直方向的FOV为FOVY,摄像机与近裁剪平面的距离为n,裁剪平面的宽高比为aspect,求摄像机水平方向的FOVFOVX

设近裁剪平面窗口的宽度为w,高度为h,则:

tan(FOVY / 2) = h / (2n);
tan(FOVX / 2) = w / (2n) = aspect * h / (2n) = aspect * tan(FOVY / 2);

于是可以求出FOVX

FOVX = 2 * atan(aspect * tan(FOVY / 2));

但是这种算法涉及到tanatan,效率比较低。在实际应用中,当aspectFOVY的值相对较小时,有一种近似的写法:

FOVX = FOVY * aspect;

我们来测试一下。令FOVY60aspect4:3,即1.3333,则实际的FOVX值为75。根据近似算法:

FOVX = 60 * 1.3333 = 80.

可以看出两者的结果比较接近。

最后

以上就是从容奇迹最近收集整理的关于OpenGL由FOVY计算FOVX的全部内容,更多相关OpenGL由FOVY计算FOVX内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部