You are on page 1of 6

(19) Visualisierung und

Volumenrendering I
Einführung
Computergrafik 3, SS 08
Matthias Raspe

Wissenschaftliche Visualisierung Wissenschaftliche Visualisierung


• 1987 geprägter Begriff von McGormick et al.
• Darstellung von Unmengen (simulierter) Zahlenwerte aus
„wissenschaftlichem Rechnen“
• Computergrafik für Darstellung, da Daten meist geometrische
Bedeutung haben
• Computer als „Intelligenz-Verstärker“ (Ashby,
1956!)
• Daten nicht nur visualisieren, sondern mit ihnen interagieren
• Schnittstelle zur Informationsvisualisierung
• Mensch-Maschine-Kommunikation
• Softwareergonomie

M. Raspe 27. Juni 2008 3 / 35 M. Raspe 27. Juni 2008 4 / 35

Volumenrendering
• Modelle wurden bisher nur durch ihre Oberfläche
beschrieben
• Zusätzlich sorgen verschiedene Techniken für eine
anwendungsgemäße Darstellung
• (Eckpunkt-)Farben OsiriX
• Beleuchtungsverfahren Kratz et al.
• Texturen
• Allgemein: Shader
• Oft wird aber auch Information aus
„dem Inneren“ benötigt, v.a. in
der Medizin…

M. Raspe 27. Juni 2008 5 / 35 Kniss et al.


Volumenrendering Volumenrendering
• Volumengrafik stellt jedoch sehr hohe Ansprüche • Beispiel 2: 4D-Kardio-CT
an die Hard- und Software aufgrund der hohen • Datentiefe: 16 Bit (12 Bit Nutzdaten)
• Auflösung pro Bild: 512 x 512
Datenmengen • insgesamt 250 Slices
• Beispiel 1: Abdomen-CT-Scan • 25 Zeitschritte OsiriX
• Datentiefe: 16 Bit (12 Bit Nutzdaten) ! mehr als 3 GB...
• Auflösung pro Bild: 512 x 512 • Relevante Faktoren:
• Insgesamt 800 Schnittbilder („slices“) • Datentransfer ! z.B. PCIe 16x hat 4 GB/sec… als
mit 0.5 mm Abstand theoretisches Maximum!
! 400 MB… • Grafikspeicher ! Consumer-Grafikkarten bis zu 1 GB
• allg. Speichergeschwindigkeit ! Caches, RAM, HD
Cascada

M. Raspe 27. Juni 2008 7 / 35 M. Raspe 27. Juni 2008 8 / 35

Visualisierung und Volumenrendering

• Themen der folgenden Veranstaltungen:


• Grundlegende Konzepte und Algorithmen
• Möglichkeiten zur Visualisierung
• GPGPU
• Der Schwerpunkt liegt auf Volumenrendering: Grundlagen
• Modelle und Konzepte
• Volumenintegral
• Volumenrendering-Pipeline
• Verschiedene (echtzeitfähige) Direkt-Renderingverfahren
• softwarebasiert
• hardwarebasiert
• Überblick zu Systemen und weiteren Forschungsgebieten

M. Raspe 27. Juni 2008 9 / 35

Volumenrendering-Pipeline Datenstrukturen
Akquisition
der Daten
• Bisher geometrische Oberflächen:
Bildgebende Verfahren • Dreiecksnetze, mit/ohne Topologie
(z.B. CT, MR), Simulationen
• Parametrische Flächen (Bézier, NURBS etc.)
• Oberflächen reichen nicht, daher:
Externe Systeme

Applikation/Hardware
Transferfunktion • Punkte(wolken)
• Volumenelemente
Sampling Filterung Klassifikation Shading Compositing • Zusätzlich sind den Elementen meist Attribute
zugeordnet:
Anzahl/Abstand der Interpolation der Zuweisung von Auswertung von
vorhandenen Farbe und Opazität/ Integration zu
Slices oder Samples Beleuchtungs-
Daten für Samples Transparenz Endbild
entlang Sehstrahl modellen

• Skalare (z.B. Temperatur, Druck, Gewebedichte)

Darstellung
• Vektoren (z.B. Geschwindigkeit, Gradienten, DTI (7D!))

M. Raspe 27. Juni 2008 11 / 35 M. Raspe 27. Juni 2008 12 / 35


Topologien Räumliche Struktur 2D
• Ein zweidimensionales Datenfeld kann
logisch strukturiert werden:
Kartesisch Gleichmäßig Rechtwinklig • als Zellen mit den Werten in der Mitte ! „Pixel“
(cartesian) (regular/uniform) (rectilinear/uniform)
• als Gitternetz mit Werten an den Knoten

Strukturiert Unstrukturiert Gestreut


(structured/regular) (unstructured/regular) (scattered)

M. Raspe 27. Juni 2008 13 / 35 M. Raspe 27. Juni 2008 14 / 35

Räumliche Struktur 3D Räumliche Struktur


• Analog für den dreidimensionalen Raum • Üblich: Werte in Zellen (Pixel/Voxel)
• Würfel/Zelle mit Werten im Zentrum ! „Voxel“ * • einige Algorithmen verwenden Gitter, z.B.
• Zelle mit Werten an den Knoten ! Voxelzelle/-gitter • Marching Cubes/Squares
• Graph-Cut Verfahren

• Einfache Konvertierung, da nur „logische Definition“


• Im folgenden wird von Pixeln/Voxeln ausgegangen,
sofern nicht ausdrücklich erwähnt
• Andere Repräsentationen (z.B. hexagonal) werden hier
nicht berücksichtigt, da keine Verwendung/Vorteile in
der Computergrafik...
*) abgeleitet von „volume element“, in Analogie zu Pixel = „picture element“

M. Raspe 27. Juni 2008 15 / 35 M. Raspe 27. Juni 2008 16 / 35

Darstellung der Daten


• Darstellung der skalaren Werte in Farben üblicherweise
mit Hilfe von Farbtabellen („color maps“)
• Realisierung als einfache Lookup-Tabelle

Transferfunktionen
11.23
10.11 Werte werden „geclamped“
9.78
9.78 9.65
9.65 9.22
9.22 8.79
8.79
8.68
8.68
… …
… …
… …
3.01 3.01
2.32 2.32
1.92 1.92
1.01 Werte werden „geclamped“
0.78

• Direkt in Hardware verfügbar:


• glColorTableEXT ! als Palette in fixed-function-pipeline
• glTexImage1D ! als Textur, z.B. für eigene Shader

M. Raspe 27. Juni 2008 18 / 35


Transferfunktionen Transferfunktionen
• Transferfunktionen sind eine Abbildung von der Menge • Genauer:
der Attribute in die Menge der visuellen Eigenschaften • Die Transferfunktion (TF) ist aus mathematischer Sicht eine
Funktion und keine Relation
• Farbtabelle = diskretisierte Form der allgemeineren
• Je nach Dimension der Wertemenge können aber mehrere
Transferfunktion Ausgabewerte einem Eingabewert zugeordnet sein
• Bei der Abbildung muss einem Eingabedatum eindeutig
• Beispiele:
ein Wert zugeordnet werden können…
• Typische Abbildungen sind:

Helligkeit
• Skalare in Grauwerte f : R → R
• Skalare in RGB-Farben f : R → R3
• Richtungsvektoren in RGB-Farben f : R3 → R3 Skalar

Diskrete, abschnittsweise Keine gültige TF, Kontinuierliche TF


Kontinuierliche TF
definierte TF da Relation für RGB-Kanäle

M. Raspe 27. Juni 2008 19 / 35 M. Raspe 27. Juni 2008 20 / 35

Transferfunktionen Transferfunktionen
• In der Praxis ist die Bestimmung einer • Es existieren sehr viele unterschiedliche Ansätze,
“guten” Transferfunktion aufwendig jedoch keine universelle Lösung
• eindimensionale TFs ermöglichen nur • „High-Level User Interfaces for Transfer Function Design with
Semantics“, Rezk-Salama et al., 2006
einfache Abbildungen Transfer Functions

Cascada: 1D-TF • „The Transfer Function Bake-Off“, Pfister et al., 2001


• Idee: zusätzliche Informationen
wie Gradienten, Abstände etc. Cascada: 2D-TF • Med. Workstations bieten
mit einbeziehen oft Kombination aus TF-
• Abgrenzung sonst gleicher Bibliothek und manueller
Strukturen möglich Steuerung (1D-TF) an
• aber: TF wird dadurch
mehrdimensional
• große Datenmengen
• Kontrolle/User-Interface? Figure 3.9: Transfer
Siemens Medical Inc.
Functions in syngo
M. Raspe 27. Juni 2008 22 / 35

Each transfer function has been designed for a specific purpose, e.g. to
enhance vessels or to reveal the kidneys. Accordingly, the transfer functions
might have a lesser effect on a different dataset.

3D Visualization and Image Processing 30

Zusammenfassung TF
• Transferfunktionen weisen Volumendaten optische
Eigenschaften zu, zum Beispiel:
• Dichtewert ! Opazität
• Windrichtung ! RGB-Wert
• verschiedene Dimensionen möglich, jedoch Indirekte Verfahren
zunehmend komplexer
• kein universelles Verfahren
• Unterscheidung nach Automatisierung
• stark abhängig von Modalität (CT: einfach, MR: schwierig)
• aktives Forschungsgebiet

M. Raspe 27. Juni 2008 23 / 35


Darstellung II Darstellung II 106 CHAPTER 5. NON-PHOTOREALISTIC VOLU

concept of deferred computations is that it reduces their complexity fr

• Eine andere Form der


to object space, e.g., the number of voxels in a volume, to the complex

• Diese können mit weiteren Attributen erweitert


the number of pixels in the final output image. Naturally, these compu
to shading equations per se, but can also include the derivation of addi
Visualisierung ist die is only needed for visible pixels and may be required as input for shadi

Hervorhebung gleicher Werte dargestellt werden, z.B. surface properties.


In this section, we describe deferred shading computations for re

mit geometrischen Primitiven • Isolinien für bestimmte Höhen eines Geländes volumetric data. The computations that are deferred to image space ar
shading, but also include the derivation of differential implicit surface

• Isolinien (auch „Höhenlinien“,


• Farbe/Sättigung für Vorzeichen/Betrag des Gradienten
gradient (first order partial derivatives), the Hessian matrix (second ord
and principal curvature information.
Konturlinien) Figure 5.5 illustrates a pipeline for deferred shading of isosurface

• Isoflächen (Konturflächen) • Steile Anstiege ! intensives Rot figure 5.6 shows example images corresponding to the output of specific
passes. The input to the pipeline is a single floating point image storin

• In dieser Form gehören sie zu • Flache Gefälle ! leichtes Blau tion positions of the viewing rays and the isosurface. This image is obt
the volume, or first hit ray casting, as outlined above and illustrated i

den indirekten Visualisierungs- • Isolinien und vor allem Iso- From this intersection position image, differential isosurface propert
and additional partial derivatives such as the Hessian matrix can be
methoden flächen spielen in vielen
• Als direkte Methode im Anwendungsgebieten eine
Zusammenhang mit
Volumenrendering sehr große Rolle
! später…

M. Raspe 27. Juni 2008 25 / 35 M. Raspe 27. Juni 2008 26 / 35

Figure 5.6: Example image space rendering passes of deferred isosur


properties such as (a) the gradient (here color-coded in RGB), (b) prin
tudes (here: κ1 ), and (c) principal curvature directions can be reconstru
can be used in shading
! passes, e.g., (d) Blinn-Phong shading, (e) col
measures (here: κ21 + κ22 [70]), and (f) advection of flow along principa

Exkurs: Gradient Marching Cubes


• Beim bisherigen (Oberflächen-)Rendering waren die Normalen • Wie können Isoflächen automatisch aus Volumendaten
gegeben oder konnten berechnet werden
generiert werden?
• Für Volumendaten (genauer: 3D-Skalarfelder) gibt es jedoch
keine Normalen im eigentlichen Sinn... • Marching Cubes (Lorensen et al., 1987)
• Guter Ersatz: der Gradientenvektor • Übliches Verfahren zur Konstruktion von Isoflächen aus 3D-
• entspricht der Normale auf Isofläche Skalarfeldern (d.h. Volumen)
• analog zu Gradient in Bildverarbeitung (vgl. Kantendetektion) • Auch allgemein definiert auf anderen Daten
• Der Gradientenvektor ∇f ist die erste Ableitung eines 3D- • Bei höherdimensionalen Daten (Vektorfelder etc.) wird eine
Skalarfeldes f (x, y, z) , d.h entsprechende Ordnungsrelation benötigt, z.B.
• Betrag des Vektors
! "
∂f ∂f ∂f
!
∇f = (fx , fy , fz ) = , , ||∇f || = fx 2 + fy 2 + fz 2
∂x ∂y ∂z • Gradient (auch bei Skalaren)
• Wird oft durch Zentraldifferenzen berechnet, z.B. in x-Richtung: • Zunächst im 2D: Marching Squares
fx (x, y, z) = f (x + 1, y, z) − f (x − 1, y, z) mit x, y, z ∈ N
M. Raspe 27. Juni 2008 28 / 35

Marching Squares Marching Squares


• Ausgangsdaten: Skalare an Gitterpunkten • Beispiel Graustufenbild, Isolinie für C = 3
• Annahmen: • Skalarfeld der Dimension 2
• Isowert wird höchstens einmal zwischen zwei Gitterpunkten • Gitterpunkte = Pixelmitte
angenommen ! ausreichend hohe Auflösung • Ergebnis ähnlich zu Kanten-
• Werte (und damit die Konturen) verlaufen linear detektion, aber:
• Vorgehen: Kante ! Isolinie 2 4 4 6 4 1

• Bestimme für jeden Gitterpunkt, ob er innerhalb/außerhalb 1 2 4 6 4 2

liegt ! Bitcode 2 2 5 6 4 2

• Ermittle beteiligte Kante aus unterschiedlichen Bitcodes 2 4 6 6 4 2

• Bestimme Punkt auf dieser Kante durch lineare Interpolation


5 6 5 4 2 1

• Verbindung dieser Punkte zu Linien


4 4 3 2 1 0

: ! C („innerhalb“) : > C („außerhalb“)

M. Raspe 27. Juni 2008 29 / 35 M. Raspe 27. Juni 2008 30 / 35


Marching Squares Marching Cubes
• Betrachtet man sich eine Gitterzelle genauer, gibt es nur eine
begrenzte Zahl von Kombinationen, wie die Linie grundsätzlich
• Die Erweiterung des Marching Squares Ansatzes
führt zu Marching Cubes
verlaufen kann
• Insgesamt 24 = 16 Möglichkeiten: • Prinzipiell gleicher Ablauf
• Statt (Iso-)Linien werden Isoflächen erzeugt
• Ausgangsdaten sind hier wieder Skalare in einer
regulären Gitterstruktur (Voxelzelle)

• Anzahl läßt sich deutlich reduzieren:


• Durch Komplementbildung ! 8 Möglichkeiten
• Durch Rotation und Symmetrie ! 4 Möglichkeiten
• Es gibt aber dennoch eine Mehrdeutigkeit…

M. Raspe 27. Juni 2008 31 / 35 M. Raspe 27. Juni 2008 32 / 35

Marching Cubes Marching Cubes


• Allgemeines Vorgehen bei Marching Cubes:
• Die Anzahl der möglichen Kombinationen beträgt in einer
• Betrachtung von Würfeln aus je 4 Voxeln der Schicht k und k+1
Voxelzelle insgesamt 2 = 256
8
• Bestimmung der Codes für Eckpunkte (innerhalb/außerhalb)
• Durch Anwendung der gleichen Prinzipien (Komplement, • Ermittlung der beteiligten Kanten
Symmetrie) lassen sich die Fälle auf die folgenden 15
Kombinationen reduzieren:
• Ermittlung von Punkten auf diesen Kanten durch lineare Interpolation
• Verbindung der Punkte zu Dreiecken
• Auch hier gibt es Mehrdeutig-
• Zusätzlich:
keiten, die sich jedoch teilweise
nicht auflösen lassen • Zusammenfassung der Dreiecke/Dreiecksnetze zu möglichst
effizienten Meshes (Triangle Strips usw.)
! Löcher in Isofläche…
• Bestimmung von Gradienten, z.B. für Shading
• Mögliche Lösungen
Loch in • Speicherung der Vektoren in Textur (RGB+A)
• Zusätzliche Komplemente Isofläche • exakter, aber teurer: on-the-fly Berechnung
• Gradienten berücksichtigen
• Alternative Verfahren (z.B. Marching Tetraeder, Shirley et al, 1990)

M. Raspe 27. Juni 2008 33 / 35 M. Raspe 27. Juni 2008 34 / 35

Zusammenfassung MC
• Marching Cubes als Methode zur Generierung von
Isoflächen aus einem Voxelgitter
• Mehrdeutigkeiten, begrenzte Anzahl von Kombinationen
! Optimierung möglich:
• Bitcodes
• Lookup-Tabelle
• Benötigt jedoch hohe Auflösung
des Gitternetzes für ausreichende
Qualität
• Problematisch wegen erhöhter
Datenmenge und Laufzeit
• Ideal: adaptive Verfahren

M. Raspe 27. Juni 2008 35 / 35

You might also like