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. |