CrashViewer allgemein
Die Applikation crashViewer wurde als Testplattform für
die Implementierung verschiedener Funktionalitäten im Bereich des Pre-
und Postprocessings in der Crash-Simulation entwickelt. Der
crashViewer wurde in C++ implementiert und setzt sich aus
verschiedenen Modulen zusammen, von denen die wichtigsten im folgenden
vorgestellt werden:
- Viewer ist das zentrale Applikationsmodul und
übernimmt die Interaktionssteuerung. Als GUI (Graphical User
Interface) wird derzeit X11/Motif verwendet, um dem Benutzer
Eingaben über Dialogfenster und Menüs zu ermöglichen. Das
Darstellungsfenster basiert auf der High-Level-Graphikbibliothek
Cosmo3D/OpenGL Optimizer.
- Reader fasst verschiedene Bibliotheken zum
Einlesen von Pre- und Postprocessing-Daten zusammen. Von hier
aus werden aus den gegebenen Dateiformaten die benötigten Daten
in eine interne, objektorientierte Datenstruktur transformiert.
- GeoBuilder stellt den Teil der Applikation
dar, die aus den internen Daten Objekte zur Darstellung mit
Hilfe von High-Level-3D-Graphik-APIs initialisieren. Bisher kann
das Simulationsmodell in Szenengraphen für Open Inventor
und Cosmo3D umgesetzt werden, die dann zur interaktiven
Darstellung traversiert werden.
- Func umfasst die Algorithmen, die für die
verschiedenen Funktionalitäten im Pre- und Postprocessing
benötigt werden.
Der modulare Aufbau von crashViewer erlaubt die schnelle
Anpassung sowohl an neue beziehungsweise weitere Dateiformate als auch
an zukünftige Graphikbibliotheken.
Zur Darstellung wurde die Graphikbibliothek Cosmo3D/OpenGL
Optimizer verwendet, welche auf der Low-Level-Graphikbibliothek
OpenGL basiert. Während Cosmo3D Objekte zur
Repräsentation von geometrischen Modellen in einem gerichteten
azyklischen Graphen bietet, umfaßt OpenGL Optimizer
verschiedene Werkzeuge zur Optimierung dieses Szenengraphen und zur
Performanzsteigerung bei der Darstellung der in der Regel sehr
umfangreichen Modelle.
Die Abbildung zeigt die Oberfläche vom crashViewer. Der
Benutzer interagiert über 2D- oder 3D-Maus, Tastatur, Bitmap-Buttons,
Menüs und Dialogfenster.
Allgemeine Funktionalitäten
- Jede Szene kann in dem binären
csb-Dateiformat
abgespeichert und wieder eingelesen werden.
- Aktuelle Einstellungen sowie Kamerapositionen, Hintergrundfarbe
etc. können in einem Environment-File abgespeichert und in einer
späteren Session wieder eingelesen werden.
- Es gibt diverse Funktionen, um die Kameraeinstellung zu wählen;
dazu gehören Standardansichten sowie das Aufsuchen und Anzeigen
von Punkten, Knoten, Elementen oder Bauteilen.
- Bauteile können selektiv per Mausklick oder über ihre IDs
ausgeblendet bzw. angezeigt werden.
- Es können einzelne (gegebenenfalls hochauflösende) Snapshots
der aktuell dargestellten Ansicht gemacht werden. Darüber hinaus
kann auch ein Record-Mode aktiviert werden, der dann die
Erstellung von digitalen Videos ermöglicht.
- Die Szene kann (vorübergehend) auf einen den Betrachter
interessierenden Teil beschränkt werden; dazu können entweder
Selektionsobjekte (Box, Kugel) oder das Viewing-Frustum der
aktuellen Kameraeinstellung verwendet werden. Dies führt bei
komplexen Modellen zu einer deutlichen Bildfrequenzsteigerung.
- Für das Rendering können verschiedene Culling-Verfahren
aktiviert werden.
- Die Geometrierepräsentation kann durch Optimierungsschritte
(wie Quadrilateral-Stripping oder Polygondezimierung)
effizienter gemacht werden.
- Schließlich können viele der Standardeinstellungen in einer
Initialisierungsdatei voreingestellt werden.
Kontakt: Ove Sommer
Email: Ove.Sommer@informatik.uni-stuttgart.de