【发布时间】:2019-11-12 23:33:25
【问题描述】:
问题的简短版本:
我会放一个四边形。我知道窗口坐标中屏幕的宽度和高度,我知道 3D 中四边形的 Z 坐标。我知道FOVY,我知道方面。四边形将沿 Z 轴放置,我的相机不会移动(放置在 0、0、0 处)。我想找出完全适合我的屏幕的四边形 IN 3D 坐标的宽度和高度。
问题的长版:
我想在 Z 轴上以指定的偏移量放置一个四边形Z,我想找出恰好填满整个屏幕的四边形的宽度和高度。
我曾经在 gamedev.net 上发过一个帖子,使用的公式类似于以下:
*dist = Z * tan (FOV / 2)*
现在我再也找不到帖子了!虽然类似,但还是有区别,因为我记得在那个工作公式中,它们确实使用了 screenWidth 和 screenHeight,它们是窗口坐标中屏幕的宽度和高度。
我对平截头体、fov 和方面等概念并不十分熟悉,因此我无法自己制定公式。此外,我确定我不需要 gluUnproject(我试过了,但结果很差)。这不是一些gl调用,它只是一个数学公式,可以找出可以填满整个屏幕的3D空间中的宽度和高度,IF Z偏移量,窗口坐标中的宽度和窗口坐标中的高度是已知的。
【问题讨论】:
-
为什么需要这个?您可以轻松地从 2D 渲染模式来回切换。
标签: opengl coordinates screen