-1

假设我在 OpenGL 中有一个透视图,并在给定深度选择一个点。假设它位于 z=-10。我怎么知道这个点有哪些实际的 x 和 y 坐标?具有正视图时很容易,因为它对于每个深度都是相同的。但对于观点一:我如何找到这些 xy 值?

4

2 回答 2

0

您提供的坐标基本上是“世界”坐标——即,事物存在于您构建的虚拟世界中的位置。换句话说,您使用的坐标始终是正交的。

举个例子,如果我要做一个房子的 3D 模型,我可以设置它,这样我就可以用实际的英尺来工作,所以当我可以画一条从 0,0 到 0,10 的线来表示精确的 10一英尺长。无论我近距离观看,它都会保持 10 英尺,所以它充满了我的视野,或者从很远的地方观看,所以它只有几个像素长。

只有在显示对象时才进行透视变换。我根本不会在输入系统的坐标上这样做。

如果您询问计算对象的屏幕坐标,是的,您可以。通常的方法是使用gluUnProject. 至少根据我的经验,你最终需要这样做是相对不寻常的。

您最关心的一次是当您使用鼠标在屏幕上选择某些内容时。虽然可以使用 gluUnProject,但 OpenGL 有一个专门用于这种目的的选择模式,而且效果很好。

于 2012-05-05T03:40:47.757 回答
0

将光标gluProject位置投影到“世界”位置(以及gluUnproject找出对象在屏幕上的位置)的一种方式。

于 2012-05-05T03:41:09.287 回答