问题的简短版本:
我会放四个。我知道窗口坐标中屏幕的宽度和高度,我知道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偏移,窗口坐标的宽度和窗口坐标的高度,是已知的。
答案 0 :(得分:4)
假设FOV是在Y-Z平面上测量的,那么:
Height = Z * tan(fov/2)
width = height * aspect_ratio