我是靠谱客的博主 从容奇迹,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部