Mehrere OpenGL-Ansichtsfenster mit Qt 5

9

Ich möchte eine 3D-Szene in verschiedene Ansichtsfenster rendern. Diese Ansichtsfenster sind in "Unterfenstern" mit ihren eigenen Menüs enthalten:

Jedes Ansichtsfenster kann sein:

  • Größe angepasst;
  • Versteckt;
  • Wird im Vollbildmodus angezeigt;
  • In einen anderen Teil der Anwendung verschoben.

So können wir etwas haben wie:

Ich glaube, es ist besser, jedes Viewport in ein Qt-Widget einzubetten, das mein OpenGL-Widget enthält (ist das richtig?). Also Wie kann ich meine 3D-Szene in mehrere Qt OpenGL Widgets rendern?

    
Korchkidu 11.12.2013, 12:00
quelle

1 Antwort

4
  

Ich glaube, es ist besser, jedes Viewport in ein Qt-Widget mit meinem OpenGL-Widget einzubetten (oder?) Wie kann ich meine 3D-Szene in mehrere Qt OpenGL-Widgets rendern?

Wie in der detaillierten Beschreibung von QGlWidget beschrieben, außer dem Initialisieren von initializeGL und paintGL, Sie müssen auch die resizeGL -Methode überschreiben. In der resizeGL-Methode müssen Sie den Ansichtsport und den Frustum anpassen.

Danach müssen nur noch die Widgets auf dem Bildschirm erstellt und platziert werden. Sie können völlig unabhängig voneinander sein, und Sie können den Frustum für jeden unterschiedlich festlegen.

Da Sie den opengl-Kontext zwischen diesen Widgets freigeben möchten, werfen Sie einen Blick in OpenGL Kontextfreigabe . Um es tatsächlich zu tun, müssen Sie das OpenGL-Kontextobjekt als ersten Parameter an den Konstruktor des QGLWidget .

    
BЈовић 11.12.2013, 12:39
quelle

Tags und Links