在查看教程时,我看到了正在使用的Ogre :: Camera :: getCameraToViewportRay方法。我试图了解它的作用。
首先,我想象一个视口,放在3D场景的某个地方,让我们说在电视对象的屏幕上。我可以很容易想象如何将视口上的2D坐标转换为场景的3D坐标,然后从相机位置点到VP上的那个点制作光线。
但我无法理解当VP在RenderWindow(在我的显示器上)时它是如何完成的。我的意思是,场景中的渲染窗口在哪里,场景中渲染窗口VP的点在哪里?如何将渲染窗口的VP转换为场景的3D点?
谢谢你的回答!
答案 0 :(得分:1)
视口显示您通过摄像头看到的内容,但视口位于摄像头前方。
有一个stackoverflow帖子,其中包含有关摄影机和视口关系的信息以及一个很好的视觉图示:https://stackoverflow.com/a/7125486/2168872
相机到视口光线是一种世界空间光线,从相机开始并在特定点与视口相交,例如鼠标光标指向的位置。