220 likes | 462 Views
Geometrische Modellierung mittels Oktalbäumen und Visualisierung von Simulationsdaten aus der Strömungsmechanik. Klaus Daubner. 1 / 22. Übersicht. Motivation Geometriemodelle Oberflächenmodelle Volumenmodelle Oktalbaumgenerierung Algorithmus Leistungsanalyse Visualisierung ParaView.
E N D
Geometrische Modellierung mittels Oktalbäumen und Visualisierung von Simulationsdaten aus der Strömungsmechanik Klaus Daubner 1 / 22
Übersicht • Motivation • Geometriemodelle • Oberflächenmodelle • Volumenmodelle • Oktalbaumgenerierung • Algorithmus • Leistungsanalyse • Visualisierung • ParaView 2 / 22
Motivation • Der Datenaustausch zwischen CAD und Simulation ist problematisch • CAD-Systeme erzeugen Oberflächenmodelle • Strömungssimulationen benötigen Volumenmodelle • Die Geometriemodelle unterscheiden sich grundlegend • Aus dem Oberflächenmodell muss ein Volumenmodell (Oktalbaum) erzeugt werden • Oktalbaum als Schnittstelle zwischen CAD und Simulation 3 / 22
Oberflächenmodelle • Körper wird über seine Grenzfläche beschrieben • Boundary Representation (B-Rep) • Menge von Teilflächen • Polygone, Freiformflächen etc. • Bedingungen: • Geschlossenheit • Orientierung muss bekannt sein • Kein Selbstschnitt 4 / 22
Dreiecksnetze • Teilflächen sind Dreiecke • Große Bedeutung in der Computergraphik • Vorteile von Dreiecken: • Über genau drei Eckpunkte definierbar • Orientierung über Reihenfolge der Eckpunkte • Immer flach • Immer konvex 5 / 22
Volumenmodelle • Körper wird über sein Volumen beschrieben • Gesamtes Volumen wird durch Boolsche Operationen aus einfachen geometrischen Grundobjekten zusammengesetzt 6 / 22
Normzellen-Aufzählungsschema (NAZ) • Aufteilung des Raumes in ein äquidistantes Gitter • Grundkörper sind sich nicht überlappende Würfel gleicher Größe (Normzellen) • Beschreibung des Körpers durch: • Vereinigung aller Würfel, die als in der Geometrie liegend gekennzeichnet sind • Im Dreidimensionalen O(n³) Würfel 7 / 22
Oktalbäume • Begonnen wird mit einem großen Würfel • Rekursion: • Liegt der Würfel auf der Oberfläche, wird er in acht kleinere Würfel unterteilt • Abbruch bei Erreichen einer vorgegebenen maximalen Tiefe • Verfeinerung nur entlang der Oberfläche • Reduktion der Würfelanzahl auf O(n²) • Kann leicht in NAZ umgewandelt werden 8 / 22
Oktalbaum 9 / 22
Oktalbaumgenerierung • Eingabe: Dreiecksnetz • Anfang: ein großer Würfel • Rekursion: • Würfel auf Oberfläche? • Suche nach Dreiecken, die den Würfel schneiden (oder vollständig innerhalb liegen) • Dreiecke gefunden: verfeinern • Abbruch • Keine Verfeinerung mehr nötig • Erreichen der maximalen Tiefe • Nach Abbruch: Innen/Außen-Erkennung 10 / 22
Pro Würfel Liste mit enthaltenen Dreiecken Nur die Dreiecke des Vaterwürfels können die neuen Würfel schneiden Aufwand pro Würfel fällt sehr schnell Rückschlüsse auf das Dreiecksnetz möglich Aufteilung der Dreiecksmenge 11 / 22
Mittelpunkt des Würfels innerhalb oder außerhalb? Idee: Blick auf die Grenzfläche Problem: Verdeckung der Sicht Lösung: Begonnen wird mit Blick (Sichtstrahl) auf ein beliebiges Dreieck Alle Dreiecke auf Schnitt mit Sichtstrahl untersuchen Suche nach erstem sichtbaren Dreieck Innen/Außen-Erkennung 12 / 22
Innen/Außen-Erkennung • Ausnutzen der Aufteilung der Dreiecksmenge • Nur unverdeckte Sicht auf ein beliebiges Dreieck nötig • Blick auf ein beliebiges Dreieck des Vaterwürfels • Ausreichend die Dreiecksliste des Vaterwürfels zu untersuchen um Verdeckung auszuschließen 13 / 22
Leistungsanalyse • Rechner: • P4, 2.4GHz, 512kB Cache • Compiler: • Intel C++ Compiler 8.0 • Testmodell: • Stanford Bunny • 69.451 Dreiecke • 9,43 Grenzflächeninhalt 14 / 22
Stanford Bunny 15 / 22
Stanford Bunny 16 / 22
Visualisierung • ParaView basierend auf dem VTK • Strömungsdaten • Skalar- und Vektorfelder • Dreiecksnetze • Erzeugen einer VTK-Datei mit Polygondaten • Oktalbäume • Erzeugen einer VTK-Datei mit Voxeldaten • Angabe der zu exportierenden Würfeltypen 18 / 22
ParaView Beispiele • Visualisierung des Dreiecksnetzes und des Oktalbaumes 19 / 22
ParaView Beispiele • Vektorfeld (60 x 60 x 200) aus Strömungssimulation • Geschwindigkeitsinformationen 20 / 22
Visualisierung des Oktalbaumes 21 / 22
Vielen Dank 22 / 22