Graphische Datenverarbeitung II - Exercise III
Marching Cubes - ISO Oberflächen aus Volumendatensätzen erzeugen

GDV II (Graphische Datenverarbeitung II, Sommersemester 2006)
In der dritten Übung soll ein Dreiecksnetz aus einem Volumen-Datensatz erzeugt werden.
Die Aufgabenstellung liegt .hier vor. Die folgenden Bilder zeigen zumindest den Teil der Aufgaben, den ich implementiert habe. Diesmal ist der Zeitdruck mit anderen Klausuren sogar dafür ausschlaggebend, dass nicht die ganze Aufgabe erfüllt werden konnte. Unsere Gruppe hat eigentlich schon genug Punkte für die Klausurzulassung gesammelt, aber aus Interesse an der Aufgabe und um guten Willen zu demonstrieren, musste doch wenigstens das Grundgerüst implementiert werden.


Basiert auf den Marching Cubes LookUp Tabellen von Paul Bourke


1. Raumunterteilung per Octree.
Besonderheit: Der Octree arbeitet nicht räumlich im Objektdomain, sondern ist eigentlich diskret über die zugrundeliegende Datenmenge aufgebaut, beinhaltet also im Wesentlichen die Indizes des kubischen Raumdichtewerte-Arrays. Die Knoten sammlen bereits Informationen über minimale und maximale Dichtewerte im Subraum und können "gefärbt" anzeigen, welche Subräume höhere oder niedrigere Dichtewerte als der Isowert besitzen.


2. Einfache Visualisierung.
Die Volumendaten - es handelt sich bei diesem Modell um die Simulation einer Benzineinspritzung in eine Verbrennungskammer - werden zunächst einfach visualisiert. Durch Kugeln, welche die Oberflächenstruktur erahnen lassen oder als Punktewolke...


3. Marching Cubes.
Per linear interpolierendem Marching Cubes - Algorithmus wird nun die Isosurface als Trianglemesh generiert; in meiner Version werden die Oberflächennormalen nicht gemittelt, deshalb der kantige Flatshadingeffekt.


4. Multiple Isosurfaces mit Alphablending.
Es werden für verschiedene Dichtewerte Isosurfaces generiert und gleichzeitig per Alphablending angezeigt. Das Modell liefert bereits einen guten volumetrischen Eindruck für das eigentlich zugrunde liegende Volumen.


5. Fuelinjection into Combustion Chamber, 4 Iso Surfaces (~ 0%, 10% 30%, 60% density) with Octree.


5. Human Skull
Volumedata: 8bit 256x256x256 1:1:1
Provided by: Siemens Medical Solutions, Forchheim, Germany
Rendered with: 3 Iso Surfaces at 20%, 30% 40% density


Animation: Human Skull


Animation: Simulation of the spatial probability distribution of the electrons in a high potential protein molecule.
Volumedata: 8bit 64x64x64 1:1:1
Provided by: VolVis distribution of SUNY Stony Brook, NY, USA.
Rendered with: 4 Iso Surfaces at 1%, 10%, 30% 60% density



Der Sourcecode bzw. das soweit laufende Programm gibt es hier: .download