Volume Renderer
186.703: Laborübung Visualisierung
Laura Fritz, 9826587
Stephan Pajer, 0325816
Allgemein
Dieser Volumen Renderer entstand für die Laborübung Visualisierung an der TU-Wien und dient der Darstellung verschiedener Volumsdatensätze in 2D (Slicing) und 3D (Raycasting). Die Volumsdatensätze, welche zu Beispiel durch Computertomographie (CT) oder Magnet Resonanz (MR) erzeugt werden, sind bereits auf kartesischen dreidimensionalen Gittern gegeben. Der verwendete Raycasting Algorithmus ist im Paper von Marc Levoy, "Display of Surfaces from Volume Data" ( IEEE Computer Graphics and Applications, Vol. 8(3), pp. 29-37, Feb.1987 ) beschrieben. Im nächsten Abschnitt werden die einzelnen Funktionen und Einstellungsmöglichkeiten des Renderers beschrieben.
Programm
Nach dem Laden eines Datensatzes wird der Sliceviewer in einem Splitterwindow geöffnet:
Im Window links oben sind die Slices in der XY-Ebene, rechts oben in der XZ-Ebene und links unten in der YZ-Ebene zu sehen. Die Tiefe kann mit den jeweiligen Slider im Slice Viewer Dialog eingestellt werden. Um die Gradienten zu sehen muss die Check Box show Gradient aktiviert werden.
Das Window rechts unten zeigt eine 3D Darstellung des Volumens durch einfache Texture-Cubes die zur interaktiven Einstellung der Blickrichtung, des Thresholds und der Farbwerte dient. Durch Bewegen des Cursors mit gehaltener linken MT lässt sich das Objekt beliebig drehen.
Raycaster
Um das Window für den Raycaster zu öffnen muss man auf den Render Button im Slice Viewer Dialog klicken:
Für das Rendering gibt es einige Einstellungsmöglichkeiten welche das Ergebnisbild im Renderwindow beeinflussen:
- Render Mode
- Average: Berechnet für jedes Pixel den Duchschnitt aller Werte an den Samplingpunkten entlang eines Strahls (Röntgenbild).
- First Hit: Berechnet eine Isofläche (mit Phong Shading) des Objekts anhand des gegebenen Thresholds.
- MIP: Bestimmt für jedes Pixel den maximalen Intensitätswert aus den Samplingpunkten entlang eines Strahls.
- Levoy Algorithm: Beschrieben im Paper von Marc Levoy, "Display of Surfaces from Volume Data". Macht durch transparente Schichten auch innere Objekte sichtbar.
- Front to Back: Bei jedem Berechnungspunkt entlang des Strahls, von vorne nach hinten, wird der aktuelle Farb-Opacity Wert dazu addiert. Der Farbwert an einem Samplingpunkt wird anhand der aktuellen Opacity und der akkumulierten Opacity, die bei jedem Schritt ebenfalls neu berechnet werden muss, bestimmt. Zum Schluss muss noch ber Hintergrund berücksichtigt werden.
- Back to Front: Ausgehend von der Hintergrundfarbe wird für jedes Voxel entlang des Strahls, von hinten nach vorne, der jeweilige Anteil des bisherigen Farb- und Opacitywertes mit dem aktuellen Farb-Opacity Wert, abhängig von der aktuellen Opacity prozentuell addiert und als neuer Wert für den nächsten Brechnungspunkt genommen.
- Interpolation
- Nerarest Neighbour: Es wird der nächstliegende Wert zum Samplingpunkt genommen.
- Trilinear: Es wird der Wert am Samplingpunkt anhand der nebenligenden Werte interpoliert.
- Volume Rendering
- Step Length: Bestimmt die Schrittweite mit der entlang des Sehstrahls gesampled wird.
- Use adaptive Step Length: Berechnet den jeweiligen neuen Samplingpunkt anhand des Gradienten an der Stelle des alten Samplingpunktes. Bei hohem Gradienten ist die Schrittweite geringer als bei niedrigem Gradienten. Da der Gradient an den Stellen mit Intensitätsänderungen (an Kanten) groß ist bleiben so wichtige Details erhalten. Der Levoy Algorithmus ohne und mit adaptiver Step length:
- Resolution: Auflösung des gerenderten Bildes.
- Use Highlights: Verwendet beim Phong Shading einen spekularen Anteil.
- Clipping Planes
- Clipt das Volumen entlang der jeweiligen Ebene. Hier ein entlang der y-Ebene:
- Transfer Function
- Button: Transfer Function: Öffnet das Fenster der Transferfunktion. In diesem kann für jede Intensität ein Farb- und ein Sichtbarkeitsstützpunkt gesetzt werden zwischen denen die Farb- und Sichtbarkeitswerte interpoliert werden.
- Use Spline Interpolation: Interpoliert zwischen den Stützstellen mittels einer 2-dimensionalen Catmull-Rom Spline. Andernfalls wird linear Interpoliert.
- exact: Die approximative Berechnung der Position der Intensitätswerte auf der Spline wird durch eine exakte Berechnung durch das Lösen der kubischen Gleichung ersetzt.
- Use for Slice Viewer: Wendet die Transfer Funktion auf die Slices an.
- Use for Volume: Wendet die Transferfunktion auf das Volumen an. Wenn diese nicht verwendet wird, wird der Farbwert auf Weiß gesetzt und der Opacitywert auf 0,9.