2012-02-18 3 views
1

는 내가 원하는 3D 장면을 표시하고 Horde3D (또는 OpenGL을)를 사용하여 3D 장면의 상단에 QWidgets을 그릴 Horde3D를 사용하는 Qt는 응용 프로그램입니다.Horde3d 및 OpenGL을 사용하여 Qt 위젯을 그리는 방법은 무엇입니까?

는 기본적으로 내 3D 장면에 대한 UI를 추가 할. 그리고이 UI는 OpenGL을 사용하여 그려야합니다. Accelerate your Widgets with OpenGL,이 하나 Tutorial - Setup Horde with Qt4 :

나는이 자습서를 성공적으로 따랐습니다.

그러나 그들을 결합하려고하면 내 3D 장면을 볼 수 있지만 UI는 제어하지 않습니다.. Horde3d와 함께 QGraphicsView, QGraphicsScene 및 QGLWidget을 사용하고 있습니다. Horde3D (초기화하지 않는다)를 사용하지 않으면 UI 컨트롤이 올바르게 렌더링됩니다.

나는 같은 문제가 on Horde3D forums 진술에 직면 해있다.

어떻게 해결할 수 있습니까?

+0

는 Qt의 렌더링하기 전에 OpenGL은 상태를 재설정 잊고 때이 발생했습니다 무언가이다. 그런데 – cgmb

+1

, 정말 http://swik.net/Trolltech/Trolltech+Labs+Blogs/Qt+Graphics+and+Performance+-+The+Cost+of+ ([성능이 QGraphicsProxyWidgets 꽤 끔찍한] 언급해야 편의/djej7). OpenGL에서 지원하는 장면에서 제대로 작동하게하고 입력을 적절히 처리하는 것은 매우 어렵습니다. 저를 믿으십시오, 나는 시도했다. – cgmb

답변

1

Horde3D를 사용하여 OpenGL 렌더링을 수행하기 위해 drawBrackground()를 사용하여 그릴 때 가장 중요한 것은 GL 상태가 유지되어야한다는 것입니다. Horde3D 장면 렌더링 후에 GL 상태를 저장하고 복원해야합니다. Qt는 UI가 사라지고