我正在使用 OpenSceneGraph 和 Qt 开发模拟软件。模拟可以涉及同一虚拟世界中的多个机器人。我对视图的要求如下:
- 能够显示静态世界相机
- 能够显示机器人摄像头
- 能够移动这些视图和/或堆叠它们
为了完成这些任务,我制作了一个“OSGWidget”,它使用一个 Osg Viewer 在 QGLWidget 中渲染场景。这个 OSGWidget 又被放置在一个 QDockWidget 中,该 QDockWidget 可以四处移动和/或堆叠,以满足该要求。
问题是,当使用多个单一查看器在不同的小部件中渲染相同的场景时,我得到了奇怪的渲染行为。即,纹理无法正确显示,有时甚至根本无法显示。
我查看了 SO 和 OSG 论坛,虽然人们也遇到过类似的问题,但我看到的唯一回复是建议切换到 Osg CompositeViewer。出于我的目的,我想避免使用它,因为它打破了我对渲染相同场景的可移动和可堆叠小部件的期望要求。
这是一个很难被 Osg 轻松处理的棘手情况吗?我看过几篇帖子说这不是 OSG 的“应该工作”方式,但他们并没有真正提供事实来支持这种说法。有没有人做过类似的事情或有任何想法/见解?如果需要,我可以提供代码片段,但这可能与 Osg 的意识形态相矛盾,我将等待得到一些回应。