2013-03-15 38 views
1

在瀏覽教程時,我看到了Ogre :: Camera :: getCameraToViewportRay方法的使用。我試圖理解它的作用。Ogre3D Camera,RenderWindow和Viewport理解

首先,我想象一個視口,放置在3D場景中的某個位置,讓我們來看看電視對象的屏幕。我很容易想象如何將視口上的二維座標轉換爲場景的三維座標,然後從攝像機位置點通過VP上的該點創建一條光線。

但我無法理解VP在RenderWindow(在我的顯示器上)時是如何完成的。我的意思是,場景中的渲染窗口在哪裏,場景中渲染窗口VP上的點在哪裏?如何將渲染窗口VP的點轉換爲場景的3D點?

感謝您的回答!

回答

1

視口顯示您通過相機看到的內容,但視口位於相機前面。

有一個計算器後約攝像頭和視口和一個不錯的視覺說明的相關信息:https://stackoverflow.com/a/7125486/2168872

視口射線相機是世界空間射線,從相機開始,並在一定的交叉視點,例如鼠標光標指向的位置。

+0

感謝您的回答。我是否正確,我的RenderWindow的視口在3D場景中有一些座標?這是否意味着它位於場景中?它距相機位置有一段固定的距離嗎? – Kolyunya 2013-03-16 07:24:18

+0

不是真的在現場。這就像從相機拍攝的照片。相機「看到」的範圍。你可以在場景中的任何地方想象它。如果你把它放在10米遠的地方,它就像20米一樣寬(取決於相機的設置,有些也顯示更大的範圍或縮放)。如果你把它放在你面前的100米處,那麼它寬達200米。你可以想象它在場景的盡頭,當它與你在其中看到的遠端一樣寬時。或者你可以想象有一個望遠鏡,而鏡頭是相機,圓形「洞」(小望遠鏡的前面)是視口。 – 2013-03-16 09:25:26

+0

謝謝你的描述! – Kolyunya 2013-03-16 09:57:00