GUI

Das Programm wurde in C++ im MS VisualStudio.NET 2005 entwickelt. Als Graphics-API fand OpenGL Verwendung. Das UserInterface ist mit Qt 4.3.2 realisiert worden, nachdem die Erfahrungen aus der 1. Visualisierungübung durchwegs positiv waren. Als Shader-Sprache wurde, wie auch bei der ersten Übung, GLSL verwendet (ShaderModel 3.0).
Entwickelt und getestet wurde das Programm mit GeForce7-Grafikkarten unter Windows XP.

Im vorliegenden Programm sind folgende Punkte realisiert:

  • Laden der Datensätze Block, Hurrican10 und Hurrican48
  • Auswählen und Darstellen des aktiven Kanals des Datensatzes
  • Anzeigen eines Arrow-Plots mit variabler Grösse
  • Einstellbare Transferfunktion
  • Anzeigen von Evenly-Spaced-Streamlines
  • Verändern der Distanz zwischen den Stromlinien
  • Einstellbare Integrationsmethode bei der Erzeugung und Darstellung von Stromlinien
  • Aktivierbares Tapering (variable Stärke der Stromlinien)
  • Grösse und Distanz der Glyphen in den Stromlinien
  • Für jedes Element besteht die Möglichkeit, eine eigene Farbe zu wählen


Menüleiste

In der Menüleiste gibt es folgende Optionen:

Datei

  • Öffnen
  • Schliessen
  • Rücksetzen der Kameraparameter (zeigt ganze Szene an)
  • Beenden (ALT+F4)

Transferfunktion

  • Laden
  • Speichern
  • Rücksetzen

Toolbar

Hintergrund

Auswahl der im Datensatz verfügbaren Skalar-Kanäle.

Arrows

  • Anzeigen:

    Der Arrow-Plot wird durch diese Checkbox aktiviert. Alle Pfeile erscheinen dabei in der gleichen Grösse.

  • Skalieren:

    Der Arrow-Plot wird anhand der Skalardaten des aktuell gewäten Hintergrunds skaliert. Hohe Werte resultieren dabei in grösseren Pfeilen.

  • Farbe wählen:

    Mit dieser Funktion werden die Pfeile eingefärbt, um die Pfeile abhängig vom Hintergrund sichtbarer zu gestalten.

  • Punktgrösse:

    Sowohl bei deaktivierter als auch bei aktivierter Skalierung kann die Punktgrösse (entspricht der Pfeilgröße) eingestellt werden.

  • Auflösung:

    Hier wird die Verteilung der Punkte innerhalb des Gitters eingestellt. Ein höherer Wert bewirkt dabei mehr Pfeile pro Fläche.

Streamlines

  • Streamlines:

    Beim aktivieren der Streamlines werden die Stromlinien berechnet und angezeigt.

  • Farbe (Streamlines) wählen:

    Um eine bessere Sichtbarkeit zu erreichen, besteht die Möglichkeit, den Streamlines eine Farbe zuzuweisen. Die Standard-Farbe ist weiss.

  • Glyph:

    Bei aktiverten Streamlines wird den richtungslosen Linienzügen zusätzlich noch eine Richtung mittels Pfeile (ähnlich Arrow-Plot) hinzugefügt.

  • Farbe (Glyph) wählen:

    Wie schon aus beim Arrowplot und bei den Streamlines können den Glyphs mittels dieses Buttons prägnante Farbinformationen hinzugefügt werden.

  • Tapering:

    Beim Tapering-Effekt wird die Strichdicke variiert entsprechend dem Abstand zu anderen Linien. Beim einem grossen Abstand wird die Linie sehr dick, beim kleinerem Abstand dünner gezeichnet.

  • dsep:

    Gibt den Abstand an, mit dem neue Streamlines erzeugt werden.

  • dtest:

    Gibt den Minimalabstand zwischen Strömungslinien an.

  • Euler:

    Die Sampling-Punkte der Strömungslinien werden mittels Euler-Integration (siehe Referenz [2]) berechet.

  • Runge-Kutta2:

    Die Strömungslinien werden mit der Runge-Kutta-Integration zweiter Ordnung (ebenfalls Referenz [2]) berechnet.

  • Update:

    Neuberechnen und anzeigen der Streamlines mit den aktuellen Parametern.

  • Grösse der Glyphs:

    Mit diesem Slider wird die Grösse der Glyphen verändert.

  • Glyphen Schrittweite:

    Gibt die Verteilungsdichte der Glyphen entlang der Stromlinien an.

Transferfunktion

Die Transferfunktion wird beim Laden eines Datensatzes aktiv.
Ähnlich der ersten Abgabe lassen sich über die Tranferfunktion lassen sich im vorliegenden Programm die normalisierten Dichtewerte des ausgewäten Hintergrunds farblich hervorheben und damit die Übersichtlichkeit im Datensatz beträchtlich erhöhen.

Neue Punkte werden mit der linken Maustaste gesetzt, mit der rechten Maustaste wieder entfernt. Mit der mittleren Maustaste öffnet sich eine Dialog-Box, mit der ein neuer Farbwert an einer neuen bzw. bereits bestehenden Position ausgewählt werden kann.

Transferfunktionen lassen sich laden, speichern - und rücksetzen.

Zoom und Pan in der Darstellung

Das OpenGL-Anzeigefenster verfügt über eine Zoom-/Pan-Funktion:

  • Linke Maustaste drücken und ziehen:
    Bewegen in X-Richtung
  • Mausrad vor / zurück:
    Datensatz vergrössern / verkleinern
  • Rechte Maustaste drücken und ziehen:
    Bewegen in Y-Richtung

Die Standard-Darstellung (screen-aligned) kann mittels "Datei->Ansicht zurücksetzen" erreicht werden.