1

在浏览教程时,我看到正在使用 Ogre::Camera::getCameraToViewportRay 方法。我试图了解它的作用。

首先,我想象一个视口被放置在 3D 场景中的某个位置,比如电视对象的屏幕上。我可以很容易地想象如何将视口上的 2D 坐标转换为场景的 3D 坐标,然后从相机位置点通过 VP 上的该点发出射线。

但是当VP在RenderWindow(在我的显示器上)上时,我无法理解它是如何完成的。我的意思是,场景中的渲染窗口在哪里,场景中渲染窗口的VP上的点在哪里?渲染窗口的 VP 上的点如何转换为场景的 3D 点?

感谢您的回答!

4

1 回答 1

1

视口显示您通过相机看到的内容,但视口位于相机前面。

有一个 stackoverflow 帖子,其中包含有关相机和视口关系的信息以及一个漂亮的视觉插图:https ://stackoverflow.com/a/7125486/2168872

相机到视口光线是一条世界空间光线,从您的相机开始并在某个点与视口相交,例如您的鼠标光标指向的位置。

于 2013-03-16T06:39:48.887 回答