Datenerfassung |
Ein dreidimensionaler Körper wird mit Hilfe eines 3D-Scanners
digitalisiert und in geeigneter Form gespeichert. |
Datenvorbereitung |
Die Daten werden eingelesen und in eine algorithmisch gut
verarbeitbare Form (z.B. dreidimensionales Array, Octree etc.) gebracht.
Außerdem kann noch eine Vorbearbeitung der Dichtewerte stattfinden
(Interpolation, Filterung, Quantisierung). |
Gradientenberechnung |
In jedem Gitterpunkt wird ein Vektor in der Richtung der größten
Dichtewertänderung (Gradient) berechnet. Dieser Vektor kann als Annäherung
an die Oberflächennormale in diesem Punkt verstanden werden. |
Klassifikation |
In diesem Schritt wird versucht, Oberflächen zu finden, indem
Dichtewerte auf Opazitätswerte abgebildet werden. Für die Klassifikation
kann entweder das Isovalue Contour surfaces-Modell oder das
Region Boundary Surfaces-Modell verwendet werden. |
Shading |
Mittels des Phong-Beleuchtungsmodells wird für jeden Gitterpunkt ein
Farbwert ausgerechnet. Transferfunktionen geben hierbei die für jeden
Dichtewertbereich zu verwendenden Koeffizienten für diffuse, specular und
ambient Beleuchtung an. |
Raycasting |
Beim Raycasting wird das die Projektionsebene Zeile für Zeile
durchlaufen und durch jedes Pixel ein Sichtstrahl geschickt. Mittels
back-to-front composing wird ein Farbwert für diesen Pixel
ermittelt, indem Farbwerte und Opazitäten von hinten nach vorne entlang
des Sichtstrahls akkumuliert werden. Der Algorithmus verwendet
Parallelprojektion. Voxelwerte können entweder mit Nearest Neighbour- oder
mit Trilinearer Interpolation angenähert werden. |