在osg中添加相机后,为什么相机不能成为另一个相机的孩子?

时间:2017-07-28 07:23:45

标签: c++ opengl openscenegraph

我正在编写一个基于OpenSceneGraph的程序,该程序使用两个摄像头,一个用于渲染用户的预览,另一个使用回调来使用MRT制作屏幕截图。导出器相机使用正交投影,并且始终使用相同的视图和向上矢量从相同的位置,而预览相机可以通过使用移动。

启动程序后,我创建预览相机,添加着色器,然后设置查看器并添加预览相机。

之后我创建导出相机,添加着色器,纹理和回调,然后我将导出相机作为孩子添加到预览相机。到目前为止,尚未呈现任何内容(即未进行frame调用)。

发出addChild来电(即在VS中达到断点,并且进一步踩下我可以看到出口商相机现在是预览相机的孩子)。但是,一旦我发出实际制作屏幕截图的命令,导出器相机就不再是预览相机的子项(到目前为止,已经进行了一些渲染调用)。

为什么会这样,除了再次添加导出相机之外,我该怎么办呢?

在旁注上:我开始使用computergraphics.stackexchange.com,这个问题是否适合这一方面,还是算法而不是实现?

1 个答案:

答案 0 :(得分:1)

如果您正在使用osg :: View,它有自己的主摄像机和从属摄像机实现 - 请参阅osg :: View标头以获取信息,或者参阅此旧教程的示例:http://thermalpixel.github.io/osg/2014/02/15/rtt-with-slave-cameras.html