如何使用 Horde3d 和 OpenGL 绘制 Qt 小部件?
Posted
技术标签:
【中文标题】如何使用 Horde3d 和 OpenGL 绘制 Qt 小部件?【英文标题】:How to draw Qt widgets using Horde3d and OpenGL? 【发布时间】:2012-02-18 00:03:04 【问题描述】:我想要的是一个使用 Horde3D 显示 3d 场景并使用 Horde3D(或 OpenGL)在 3D 场景之上绘制 QWidget 的 Qt 应用程序。
基本上我想为我的 3D 场景添加 UI。并且这个 UI 应该使用 OpenGL 来绘制。
我已经成功地学习了这个教程:Accelerate your Widgets with OpenGL,还有这个Tutorial - Setup Horde with Qt4。
但是当我尝试组合它们时我可以看到我的 3D 场景,但没有 UI 控件。我将 QGraphicsView、QGraphicsScene 和 QGLWidget 与 Horde3d 一起使用。如果我不使用 Horde3D(我的意思是不要初始化它),那么我的 UI 控件会正确呈现。
我面临on Horde3D forums 所述的同样问题。
我该如何解决?
【问题讨论】:
Qt UI 消失是我在 Qt 渲染之前忘记重置 OpenGL 状态时遇到的问题。 顺便说一句,我真的应该提到performance is pretty terrible with QGraphicsProxyWidgets。很难让它们在 OpenGL 支持的场景上很好地工作,并正确处理输入。相信我,我已经试过了。 【参考方案1】:当您使用drawBrackground()进行绘制时,使用Horde3D执行OpenGL渲染最重要的是必须保留GL状态,确保您在渲染Horde3D场景之前保存GL状态并在渲染之后恢复。
【讨论】:
以上是关于如何使用 Horde3d 和 OpenGL 绘制 Qt 小部件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VBO 和单个 OpenGL drawelements 调用绘制多个对象?