Opengl:给定Z的值,适合四边形到屏幕

时间:2011-01-04 04:15:12

标签: opengl screen coordinates quad

问题的简短版本:

我会放四个。我知道窗口坐标中屏幕的宽度和高度,我知道3D中四边形的Z坐标。我知道FOVY,我知道这个方面。四边形将沿Z轴放置,我的相机不移动(放置在0,0,0)。我想找出四合一IN 3D COORDINATES的宽度和高度,它们将完全适合我的屏幕。

问题的长版:

我想在指定偏移量 Z 的Z轴上放置一个四边形,我想找出四边形的宽度和高度,它将完全填满整个屏幕。< / p>

我以前在gamedev.net上有一个帖子,它使用类似于以下的公式:

* dist = Z * tan(FOV / 2)*

现在我找不到帖子了!虽然它很相似,但仍然不同,因为我记得在那个工作公式中,他们确实使用了screenWidth和screenHeight,它们是窗口坐标中屏幕的宽度和高度。

我对截头体,fov和方面等概念并不熟悉,这就是为什么我不能自己计算出公式。此外,我确信我不需要gluUnproject(我试过了,但结果却没有了)。这不是一些gl调用,它只是一个数学公式,可以找出可以填满整个屏幕的3D空间的宽度和高度,IF Z偏移,窗口坐标的宽度和窗口坐标的高度,是已知的。

1 个答案:

答案 0 :(得分:4)

假设FOV是在Y-Z平面上测量的,那么:

Height = Z * tan(fov/2)

width = height * aspect_ratio