VIS Exercise #09 (MIP)
Visualisierung Übungsblatt #09 (MIP)
Medical 3D Data: Volume Rendering via MIP
1. MIP:
Stellen Sie Ihre MPR mit Hilfe des Slicer-Moduls “slicer.h” auf View-Aligned Slices um und schalten Sie Max-Blending ein, um eine MIP darzustellen.
Eine Schnittebene durch einen Tetraeder wird durch einen Aufruf der Funktion slice(v1, v2, v3, v4, o, n) mit entsprechenden Parametern v1-v4, welche die Eckpunkte des Tetraeders repräsentieren, und Parametern o und n, welche die Ebenen-Gleichung der Schicht definieren, gerendert (Fallunterscheidung analog zu Iso-Flächen Extraktion). Eine Schnittebene durch einen Hexaeder wird analog durch einen Aufruf der Funktion slice(v1, v2, v3, v4, v5, v6, v7, v8, o, n) mit entsprechenden Parametern v1-v8, welche die Eckpunkte des Hexaeders repräsentieren, gerendert. Letzteres erfolgt durch Zerlegung des Hexaeders in 5 Tetraeder.
Rendern Sie damit eine gewisse Anzahl von Bildebenen-parallelen Schichten durch einen Einheitswürfel wie in der Vorlesung beschrieben.
2. Adaptive Qualität (optional):
Wenn eine gewisse Zeit keine Maus-Interaktion stattgefunden hat (z.b. idle time > 2s), so kann man die Anzahl der Schichten verdoppeln bzw. $\Delta t$ halbieren.
3. DVR (optional):
Probieren wir es doch auch mal mit alpha-Blending:
Die RGB-Komponenten des jeweiligen Fragments entsprechen hier dem Emissionsanteil der Transferfunktion $TF_{rgb}(s)$. Der alpha-Wert des jeweiligen Fragments berechnet sich hier aus dem Absorptionsanteil der Transferfunktion zu $\alpha = TF_{\alpha}(s)$.
Wir wählen für dieses Beispiel eine lineare Transferfunktion sowohl für die Emission als auch für die Absorption, d.h. $TF_{rgb}(s) = (c, c, c) \cdot s$ und $TF_{\alpha}(s) = c \cdot s$ mit einem kleinen Skalierungsfaktor von sagen wir c=0.01 bei 100 Schichten - Genaueres dazu siehe hier.
3. Voila
Alle Klarheiten beseitigt - Fin!

