2012-02-18 87 views
1

我要的是使用Horde3D來顯示3D場景和使用Horde3D(或OpenGL)的3D場景的頂部繪製QWidgets Qt應用程序。如何使用Horde3d和OpenGL來繪製Qt小部件?

基本上我想添加UI我的3D場景。這個UI應該使用OpenGL繪製。

我已經成功地遵循本教程:Accelerate your Widgets with OpenGL,而這一次Tutorial - Setup Horde with Qt4

但是當我嘗試將它們合併時我可以看到我的3D場景,但沒有UI控件。我使用QGraphicsView,QGraphicsScene和QGLWidget和Horde3d。如果我不使用Horde3D(我的意思是不要初始化它),那麼我的UI控件呈現正確。

我面臨同樣的問題陳述on Horde3D forums

我該如何解決?

+0

Qt的UI消失的東西忘了Qt的渲染之前重置OpenGL的狀態時,我也遇到過。 – cgmb 2013-02-22 10:09:33

+1

順便說一句,我真的應該提到的是[性能與QGraphicsProxyWidgets非常可怕的(http://swik.net/Trolltech/Trolltech+Labs+Blogs/Qt+Graphics+and+Performance+-+The+Cost+of+便利/ djej7)。要使它們在OpenGL支持的場景中很好地工作並且正確處理輸入是非常困難的。相信我,我已經嘗試過了。 – cgmb 2013-02-23 01:35:55

回答

1

當使用drawBrackground()繪製使用Horde3D進行OpenGL渲染時,最重要的事情是必須保留GL狀態,確保在渲染Horde3D場景之前保存GL狀態並進行恢復。