【发布时间】:2012-02-05 13:04:39
【问题描述】:
我在 Qt 上摆弄了 OpenGL。但现在我想要复杂的场景。 (加载了多个 COLLADA/MD2 模型)。
为此,我正在考虑使用 OpenSceneGraph (OSG)。 是否可以将 OSG 与 Qt 集成?如果有怎么办?
谢谢。
【问题讨论】:
标签: qt opengl scenegraph openscenegraph
我在 Qt 上摆弄了 OpenGL。但现在我想要复杂的场景。 (加载了多个 COLLADA/MD2 模型)。
为此,我正在考虑使用 OpenSceneGraph (OSG)。 是否可以将 OSG 与 Qt 集成?如果有怎么办?
谢谢。
【问题讨论】:
标签: qt opengl scenegraph openscenegraph
OpenSceneGraph 有一个 osgQt 库,可以轻松地将 OpenSceneGraph 集成到 Qt 中。前往样本,特别是 osgviewerQt 一个!
【讨论】:
是的 - 我已经有一年没有在 OSG 上工作了,但是 OSG 中有一个非常好的 Qt 小部件,它对于商业产品来说已经足够好了。
随着 4.8 中 openGL 的新改进,它应该会更好
你应该搜索osg forum
【讨论】:
只是指出另一个资源(与 QOpenGLWidget 一起使用):Bastian Rieck 的一篇文章Making Qt and OpenSceneGraph play nice。对于那些有兴趣在不同的小部件上渲染不同的场景同时只执行按需更新(没有计时器)的人会很有用。文章有一个源代码链接。
【讨论】:
我写了一个从 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找到。
【讨论】: