Strömungsvisualisierung
LU Visualisierung
WS 05/06
Wanek Ronald
Homolar Walter
Dieses Programm wurde als zweite Aufgabenstellung im Zuge der Laborübung Visualisierung im Wintersemester
2005/2006 entwickelt. Es verwendet verschiedene Techniken der Strömungsvisualisierung um Messdaten zu visualisieren. Folgende Funktionen wurden implementiert:
- Darstellung von bis zu zwei farbcodierten Parametern.
- Darstellung von Strömungen mit Hilfe von Arrow Plots
- Darstellung von Strömungen mit Hilfe von Streamlines
- Darstellung von animierten Strömungen
- Interaktives Bearbeiten der Transferfunktion.
- Interaktive Einstellung der Blickrichtung.
Inhalt
Systemvoraussetzungen
Bedienung
Dokumentation
Download
Screenshots
Die Software wurde mit .Net 2.0, C++ und OpenGL/GLSL entwickelt und benötigt deshalb ein installiertes .Net-Runtime-Environment. Alle anderen benötigten Komponenten werden mitgeliefert.
Die Bedienung des Programms ist sehr einfache und intuitiv. Die Interaktion erfolgt mit der Maus. Durch Drag und Drop kann die Strömungsdarstellung mit der
linken Maustaste rotiert, mit der mittleren skaliert und mit der rechten verschoben werden. Alle weiteren Features sind über die Registrierkarten
auf der linken Seite erreichbar:
Data:
Hier kann ein Datensatz geladen werden. Einfach auf „Load Grid“ klicken, Datei auswählen, Timesteps auswählen, auf "Load Data" klicken und warten.
View:
Mit Hilfe dieser Registrierkarte kann zwischen orthogonaler und perspektivischer Darstellung gewählt werden. Falls eine Strömung mit mehreren Zeitschritten
importiert wurde, kann der Zeitschritt der Darstellung mit dem "Step" Schieberegeler festgelegt werden.
Renderer:
In Abhängigkeit zur Art der importieren Strömung werden hier mehrere Registrierkarten angezeigt:
- Background: Mit Hilfe dieser Registrierkarte kann ein Hintergrund festgelegt werden. Dieser Hintergrund kann eine Farbe und oder ein Bitmap sein. Die Größe
des Hintergrundbildes ist auf die Größe des Datensatzes festgelegt.
- Parameter00: Hier kann, mit Hilfe der Transferfunktion , Skalarwerten eine Farbe zugewiesen werden.
- ArrowPlot: Hier können Arrowplots eingestellt werden. Eine Liste der Parameter und deren Auswirkungen gibt es hier.
- StreamLines: Hier können die Parameter der StreamLineseingestellt werden. Eine Liste der Parameter und deren Auswirkungen
gibt es hier.
Allgemeines zu den Registrierkarten:
Alle Registrierkarten verfügen über folgende drei Parameter:
- enable: Ein/Ausschalten der aktuellen Darstellung.
- up/dn: Aktuellen Darstellung nach oben/unten verschieben. Veränderungen der dieses Parameters bewirken, dass die Reihenfolge
in der die einzelnen Darstellungen gerendert werden verändert wird.
- Alpha: Legt die globale Transparenz der aktuellen Darstellung fest.
Transferfunktion:
Mit Hilfe der Transferfunktion kann eine Farbe festgelegt werden, die einen bestimmten Skalarwert repräsentiert.
Die Abbildung zeigt eine Transferfunktion. Die oberen Kontrollpunkte legen die Transparenz der Transferfunktion fest, die
unteren definieren die Farbe. Zum Bearbeiten der Kontrollpunkte stehen folgende Interaktionsmöglichkeiten zur Verfügung:
- Einfügen von Kontrollpunkten: Ein Kontrollpunkt kann durch einen Klick mit der Linken Maustaste eingefügt werden.
- Verschieben von Kontrollpunkten: Die Position eines Punktes kann durch Drücken und Verschieben der linken Maustaste verändert werden.
- Löschen von Kontrollpunkten: Löschen erfolgt durch einen Doppelklick mit der linken Maustaste auf den Kontrollpunkt.
- Andern der Farbe/Transparenz von Kontrollpunkten: Ein Rechtsklick auf einen Kontrollpunkt öffnet ein Dialogfenster mit dessen Hilfe die Farbe.
Parameter ArrowPlot:
- Fixed Size: Alle Pfeile erhalten die gleiche Größe.
- Arrow Type: Hier kann zwischen mehreren Pfeilarten ausgewählt werden.
- Arrow Size: Legt fest welcher Parameter die Größe des Pfeiles bestimmt.
- Arrow Color: Mappt die in der Transferfunktion festgelegten Farben auf den ausgewählten Parameter.
- #Arrow: Schieberegler mit dem die Anzahl der Pfeile festgelegt werden kann.
Parameter StreamLines:
- Lenght: Gibt die Mindestlänge der Vektoren an, ist der Vektor kleiner als "length", wird die Streamline abgebrochen.
- StepsX/StepsY: Die Anzahl der Seedpoints in X- und Y-Richtung (diese Parameter werden im "Evenly Spaced" Modus ignoriert,
dort ist die Anzahl der Seedpoints vom Parameter "dsep" abhängig)
- Factor: Mit diesem Faktor werden die Vektoren, die zur Berechung einer Streamline herangezogen werden verkürzt.
- Line Width: Die Linienstärke der Streamlines.
- dsep: Mindestabstand zwischen einem neuen Seedpoint und allen bisher gültigen Samplepoints.
Dieser Parameter wird nur im "Evenly Spaced" Modus verwendet.
- dtest: Das Produkt aus "dsep" und "dtest" bestimmt den Mindestabstand zwischen einem neuen Samplepoint und allen bisher gültigen Samplepoints.
Ist der neue Samplepoint zu nah an einem anderen Samplepoint wird die Streamline abgebrochen
Dieser Parameter wird nur im "Evenly Spaced" Modus verwendet.
- Runge Kutta: Ist dieser Parameter aktiv, werden die Streamlines mit Hilfe der Runge-Kutta Integration zweiter Ordnung berechnet,
anderfalls mit der Euler-Methode.
- Formel Euler: x[i+1] = x[i] + V[i] * dt
- Formel Runge-Kutta: x[i+1] = x[i] + (dt/2) * (V[i] + V[i+1])
- Evenly Spaced: Ist dieser Parameter aktiviert, werden die Streamlines mittels den im Paper "Creating Evenly-Spaced Streamlines of Arbitrary
Density" von Bruno Jobard und Wilfrid Lefer vorgestellten Algorithmus berechnet, anderfalls werden die Seedpoints fix festgelegt.
(Parameter "Steps X" und "Steps Y").
- ComboBox: Dieser Parameter definiert im welchen Stil die Streamlines gerändert werden.
- lines: Normale Streamlines
- glyph mapping: Die Streamline-Segmente werden durch Dreiecke dargestellt, welche die Strömungsrichtung anzeigen.
- sample points: Es werden nur die Seedpoints und die Samplepoints der einzelnen Streamlines angezeigt (dieser Modus wurde zur Analyse und zum Debuggen der "Evenly Spaced" Streamlines implementiert.
Eine DoxyGen-Dokumentation ist hier verfügbar.
Das Program kann hier heruntergeladen werden.