Visualisierung LU WS09 - Dokumentation

WS09/10
Wolfgang Zalesak e0727115
Michael Benda e0625162

Projekt 2: Strömungsvisualisierung

Features

Das Programm ermöglicht die Darstellung von Strömungsdaten im Format .DAT/.GRI.

Der Benutzer kann sich die in den Daten enthaltenen  Informationen wie Geschwindigkeit und Druck farblich codiert anzeigen lassen.

Des weiteren können die Strömungsrichtungen mithilfe von Arrowplots verdeutlicht werden.

Das Programm bietet die Möglichkeit Strömungslinien anzuzeigen und zwei numerische Integrationstechniken , Euler und Runge-Kutta Integration, zu vergleichen.

Der Hauptzweck der Applikation besteht jedoch in dem visuell ansprechenden Minispiel Breakout.

GUI

Das GUI ist komplett in OpenGL programmiert wobei die Transferfunktion selbst gemacht worden ist und restlichen Gui Elemente von GLUI übernommen worden sind.

block1

Das Programmfenster besteht aus 4 Teilen:

Das Hauptfenster stellt die gewählten Strömungsdaten dar. In diesem Teil des Programmes wird auch mit dem Minispiel in Echtzeit interagiert.

Mithilfe des Menüs am rechten Rand können die Darstellungen im Hauptfenster eingestellt und bearbeitet werden:

            Color coding

Hier kann der anzuzeigende Kanal ausgewählt werden, welcher im Hauptfenster Farbkodiert dargestellt wird. Die zum Kanal zugehörige Transferfunktion kann hier im Format TTF zur späteren Wiederverwendung abgespeichert und eingeladen werden

Arrow plotting

In diesem Menü können Pfeile ein und ausgeblendet werden, welche die Strömungsrichtung veranschaulichen.
Weiters können hierbei Parameter wie der Pfeilabstand sowie Pfeilgröße angepasst werden.
Die Option Scale with velocity lässt die Größe der Pfeile je nach Positionsgeschwindigkeit variieren.

Streamlines

Die Parameter für die Strömungsliniendarstellung können in diesem Abschnitt verändert werden. Der Wert Lines regelt die Anzahl der dargestellten Linien, der Wert Steps passt die Anzahl der Schritte in der Integration an und variiert somit die Länge der Strömungslinien, der Wert Stepsize beschreibt die Schrittgröße der Integrationsalgorithmen und somit die Genauigkeit der Linien.
Die Option Weighted Streamlines erzeugt verstärkt Linien in den relevanteren Gebieten (datensatzabhängig).
Die Optionen Euler und Runke Kutta steuern die Anzeige der beiden Integrationsvarianten und ermöglicht bei gleichzeitiger Anwendung einen subjektiven Vergleich.

Mit der Steueroption Pause startet (und pausiert) man das Minispiel im Hauptfenster (siehe Minispiel)

Open erzeugt einen Benutzerdialog, für die Auswahl eines Datensatzes.

Screenshot speichert das momentane Bild des Hauptfensters sowie die Transferfunktion  als Legende.

Exit beendet das Programm.

Die Transferfunktion am unteren Bildschirmrand ermöglicht die Benutzerdefinierte Farbcodierung der Strömungsdaten im Hauptfenster.
Mit einem Linksklick in die Transferfunktion wird ein neuer Kontrollpunkt erstellt.

Mit einem gehaltenen Linksklick auf einen Kontrollpunkt kann man diesen verschieben. Schieb man den Punkt weit aus dem Transferfunktionsfenster heraus wird dieser gelöscht.

Mit einem Rechtsklick auf eine Kontrollpunkt kann man dessen Farbe ändern.

FlowVis0006

Im linken oberen Bereich werden Leben (Lives), Punkte (Points) sowie Zustand des Minispiels angezeigt.

Minispiel

Bei eingeladenem Datensatz wird durch Deaktivierung der Option Pause im Menü das Spiel gestartet.

Das Spiel besteht aus einem Schläger, einem Ball sowie einer Anzahl von Blöcken.

Das Ziel des Spieles ist mit dem Ball alle Blöcke 3 Mal zu treffen und somit zu entfernen. Sobald alle Blöcke entfernt sind, ist das Spiel gewonnen.

Die Anzahl von 5 Leben verringert sich jedes Mal, wenn der Ball am Schläger vorbei nach unten Fällt.

Der Schläger kann mithilfe der Maus in die Richtungen links und rechts gesteuert werden.

Im Laufe der Spielzeit nehmen die Strömungen des Datensatzes Einfluss auf die Flugbahn des Balles und erschwert das Erreichen des Spielziels.


FlowVis0000

 

Verwendete Technologien

Programm

Das Programm ist hier zum download verfügbar. Nvidia Karte wird vorausgesetzt.

Doxygen

Die Doxygen Doku ist hier verfügbar.

Der Sourcecode ist hier verfügbar.

 

Screenshots

FlowVis0007

 

FlowVis0008

 

FlowVis0009