2017-07-28 95 views
0

我正在編寫一個基於OpenSceneGraph的程序,它使用兩個攝像頭,一個爲用戶渲染預覽,另一個使用回調與MRT製作屏幕截圖。出口商的相機使用正射投影,並始終從相同的位置使用相同的視角和向量,而預覽相機可以由用戶移動。爲什麼在osg中添加相機後,相機不會保留其他相機的子?

一旦啓動程序,創建預覽照相機,着色器添加到它,然後設置瀏覽器和預覽照相機添加到它。

後來我創建導出相機,其添加着色,紋理和回調,然後我添加了出口相機作爲孩子預覽照相機。到目前爲止,什麼都沒有呈現(即沒有0​​調用)。

發出呼叫addChild(即在VS中達到中斷點,並且進一步進一步,我可以看到導出器相​​機現在是預覽相機的子節點)。但是,一旦我發出命令來實際製作屏幕截圖,導出器相機就不再是預覽相機的子節點(到目前爲止,已經進行了一些渲染調用)。

爲什麼會這樣,除了再次添加導出器攝像機之外,我該如何修復它?


在旁註:我開始使用computergraphics.stackexchange.com,就這個問題進行適合於該側或它意味着算法而不是實現?

回答

1

如果您使用OSG ::視圖,它有自己的主從攝像機實現 - 看到OSG ::查看標頭信息或這個老教程中的示例:http://thermalpixel.github.io/osg/2014/02/15/rtt-with-slave-cameras.html

+0

謝謝,這個答案如何解決這個問題。 不幸的是,我的預覽和導出相機不使用相同的位置,出於某種原因,它總是在場景周圍旋轉90°,這使得正確設置它成爲一大痛苦。 – Tare