【问题标题】:Integrating OpenSceneGraph with Qt将 OpenSceneGraph 与 Qt 集成
【发布时间】:2012-02-05 13:04:39
【问题描述】:

我在 Qt 上摆弄了 OpenGL。但现在我想要复杂的场景。 (加载了多个 COLLADA/MD2 模型)。

为此,我正在考虑使用 OpenSceneGraph (OSG)。 是否可以将 OSG 与 Qt 集成?如果有怎么办?

谢谢。

【问题讨论】:

    标签: qt opengl scenegraph openscenegraph


    【解决方案1】:

    OpenSceneGraph 有一个 osgQt 库,可以轻松地将 OpenSceneGraph 集成到 Qt 中。前往样本,特别是 osgviewerQt 一个!

    【讨论】:

      【解决方案2】:

      是的 - 我已经有一年没有在 OSG 上工作了,但是 OSG 中有一个非常好的 Qt 小部件,它对于商业产品来说已经足够好了。

      随着 4.8 中 openGL 的新改进,它应该会更好

      你应该搜索osg forum

      【讨论】:

      • osgQt Widgets for OSG 目前在使用 Qt 5.x 和多线程渲染时不起作用
      【解决方案3】:

      只是指出另一个资源(与 QOpenGLWidget 一起使用):Bastian Rieck 的一篇文章Making Qt and OpenSceneGraph play nice。对于那些有兴趣在不同的小部件上渲染不同的场景同时只执行按需更新(没有计时器)的人会很有用。文章有一个源代码链接。

      【讨论】:

        【解决方案4】:

        我写了一个从 QOpenGLWidget 派生的简单类,可以用作普通的小部件,它封装了 osgViewer::GraphicsWindowEmbedded,并且(可选)允许在小部件中使用鼠标来控制相机。

        它的用法很简单:

        #include <QApplication>
        #include <QMainWindow>
        
        #include "QtOSGWidget.h"
        
        int main(int argc, char** argv)
        {
            QApplication qapp(argc, argv);
            QMainWindow window;
        
            QtOSGWidget widget(&window);
        
            window.setCentralWidget(&widget);
            window.show();
            return qapp.exec();
        }
        

        可以在GitHub找到。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-02
          • 2011-07-28
          • 1970-01-01
          • 2016-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多