Sorry, this document is only available in German.

space

Interaktive Volumenvisualisierung mittels Zellprojektion

Im Rahmen der Diplomarbeit "Interaktive Volumenvisualisierung auf hierarchischen, unstrukturierten Gittern" ging es darum, den bei Volumendaten besonders großen Anteil an redundanten Informationen zur reduzieren und mit der so erreichten geometrischen Vereinfachung interaktive Bildwiederholraten zu erreichen. Zum einen wurde das wohlbekannte Verfahren der Zellprojektion implementiert. Dabei wird ein beliebiges Gitter in Tetraeder zerlegt, deren volumetrische Darstellung mittels Hardwareunterstuetzung sehr schnell berechnet werden kann. Bei der Projektion eines Tetraeders treten jeweils zwei verschiedene Topologien auf, die mit der vorhandenen OpenGL-Hardware beschleunigt gezeichnet werden koennen. Die korrekte exponentielle Abschwaechung wird durch die Verwendung einer zweidimensionalen Textur erreicht, die die exponentielle Funktion in Abhaengigkeit von Dichte und Durchdringungslaenge wiedergibt. Zum anderen wurde auf der Seite der Gittergenerierung ein Modell weiterentwickelt, das bereits fuer die Terrainvisualisierung gute Dienste geleistet hatte (siehe "Real-Time Generation of Continuous Levels of Detail for Height Fields", WSCG '98). Hierbei wurde ein Ausgangshexaeder hierarchisch solange unterteilt bis der globale Fehler unter Beruecksichtigung des Augpunktes einen gewissen festzusetzenden Schwellwert unterschreitet. Die Abschaetzung des globalen Fehlers geschieht durch die Berechnung und Propagierung der einzelnen lokalen Fehler von unten nach oben innerhalb des vollstaendigen Quadtrees. Wegen der rectilinearen Struktur des Unterteilungsbaumes, gestaltet sich die notwendige Sortierung der einzelnen Tetraeder von hinten nach vorne relativ einfach. Schwieriger wird es, wenn curvilineare Gitter eingesetzt werden. Fuer diesen Einsatzzweck verwendeten wir einen statischen Gittergenerator der von Grosso et al. entwickelt wurde (siehe "The Multilevel Finite Element Method for Adaptive Mesh Optimization and Visualization of Volume Data", Vis '97). Dieses Verfahren verfolgt eine andere Strategie, indem es eine a priori Abschaetzung des globalen Fehlers errechnet. In der Praxis geht man so vor, daß probeweise eine Unterteilung vorgenommen wird, der so induzierte Fehler durch die Kenntnis der Stetigkeit der zugrundelegenden Funktion abgeleitet wird, und basierend darauf das Gitter weiter verfeinert wird oder eben nicht. Die notwendige Sortierung nach Sichtbarkeit fuer die Volumenvisualisierung verlangt in diesem Fall aber nach einem Algorithmus, der auch unstrukturierte Tetraederwolken sortieren kann. Im Rahmen der Diplomarbeit entstand so ein schnelles heuristisches Verfahren, das die Eigenschaften von hierarchischen Gittern nutzt, um eine hohe Sortierleistung zu erzielen. Im Vergleich zu Methoden, die eine absolut korrekte Sortierung gewaehrleisten, und deswegen die Komplexitaet der Geometrie durch Zellschnitte erhoehen muessen, nimmt unser Verfahren gezielt Sortierartefakte zugunsten der Sortiergeschwindigkeit in Kauf. Experimentelle Tests haben gezeigt, daß diese Artefakte bei hierarchischen Gittern erstens nur in ganz seltenen Faellen auftreten, und zweitens im Vergleich zum Approximationsfehler des Gitters verschwindend gering sind. Somit wurden zwei Verfahren zur Volumenvisualisierung vorgestellt, die einerseits die augpunktabhaengige Gittergenerierung und andererseits eine beliebige Gittertopologie erlauben.

Volumenvisualisierung auf rectilinearen Gittern

3dm1.small 3dm2.small
Ein 3-dimensionale Gitter in zwei verschiedenen Aufloesungsstufen.

c8.small c9.small c10.small
Einige CT-Aufnahmen eines Aneurysmas.

e6.small h6.small
Die Roentgenaufnahme eines Motorblocks und eine MR-Aufnahme eines Kopfes.


Aufloesung 8.0 16.0 32.0 64.0 128.0 256.0
Frames/sec 9.23 2.42 1.14 0.37 0.19 0.18
#Tetraeder 9159 43951 93629 307631 529154 628226
#Vertices 51302 246191 524434 1722976 2963682 3518934
Tabelle 2: Graphikdurchsatz bei der Zellprojektion am Beispiel des Aneurysma-Datensatzes (SGI Octane mit 250 MHz MIPS R10k).


Volumenvisualisierung auf beliebigen Gittern

a1.small e2.small
Aneurysma und Motorblock: die Gitter wurden mit der von Grosso et al. beschriebenen Methode erzeugt.

bf2.small bf3.small bf4.small bf5.small bf6.small bf1.small
Mehrere Aufnahmen des Blunt-Fin-Datensatzes, die den Ablauf des Zeichenvorgangs wiedergeben.

bf9.small bf10.small bf13.small
Blunt-Fin-Datensatz: die zwei an der Flosse entstehenden Druckwellen sind gut zu erkennen.

gui1.small gui2.small
Blunt-Fin-Datensatz: die GUIs von apProcessor und apViewer.

w4.small w7.small w10.small
Der DLR-Fluegel: dargestellt ist die Druckverteilung um einen Flugzeugfluegel.

s2.small b1.small p1.small
Ein Stroemungskanal mit Stufe und innenliegender Isoflaeche, der Abdomen eines Menschen und ein Sparschwein.


#Tetra 7020 19620 37764 163344 541428
Sortieren 0.032s 0.11s 0.24s 1.16s 3.91s
Tetra/sec 219 000 178 000 157 000 141 000 138 000
Tabelle 3: Sortierzeiten fuer den Blunt-Fin-Datensatz (SGI Octane mit 250 MHz MIPS R10k).



#Tetra 7020 19620 37764 163344 541428
Sort+Render 0.11s 0.33s 0.67s 2.97s 10.15s
Tetra/sec 64 000 59 000 56 000 55 000 53 000
Tabelle 4: Sortier- und Renderzeit fuer den Blunt-Fin-Datensatz (SGI Octane mit 250 MHz MIPS R10k).





Contact:



back to VIS Homepage
Deutsch