Techniken zur Artefaktreduktion für GPU-basiertes Ray Casting

Größe: px
Ab Seite anzeigen:

Download "Techniken zur Artefaktreduktion für GPU-basiertes Ray Casting"

Transkript

1 BACHELORARBEIT Techniken zur Artefaktreduktion für GPU-basiertes Ray Casting ausgeführt am Zuse Institut Berlin und der Freien Universität Berlin Institut für Informatik von Nils van den Bruck Matr. Nr.: betreut durch Dr. Ingrid Hotz Dipl.-Inf. Andrea Kratz Berlin, den 16. Juli 2009

2

3 Kurzfassung Die Visualisierung von Daten dient der Erkennung von Problemen und darauf beruhend der Entwicklung von Lösungen. Interaktion mit den Daten, die Variation bestimmter Parameter, erleichtert dies. Volume Rendering ist eine Methode zur Visualisierung dreidimensionaler Skalarfelder. Um Interaktion zu gewährleisten, müssen dabei entsprechend hohe Bildraten erreicht werden. Häufig wird zu diesem Zweck die Genauigkeit notwendiger Berechnungen vernachlässigt, was zu sichtbaren Bildfehlern (Artefakten) führt. Eine Möglichkeit, Artefakte zu vermeiden, ist die Verwendung einer Brute-Force- Methode. Das Volumen wird dabei durch eine hohe Anzahl an Samplingpunkten sehr fein abgetastet. Die damit einhergehend benötigte Rechenleistung lässt allerdings in den wenigstens Fällen eine Interaktion mit dem Volumen in Echtzeit zu. Ziel dieser Arbeit ist, die Bildqualität von GPU-basiertem Ray Casting, einer Methode des Volume Renderings, durch die Reduktion von Sampling und Klassifikations Artefakten zu verbessern ohne negative Auswirkungen auf die Laufzeit zu erlangen. Dazu werden die Optimierungsmethoden Pre-Integration, Adaptive Sampling und Interleaved Sampling ausgewählt, für das Visualisierungs-Framework Amira implementiert und schließlich in Hinblick auf die erreichte Reduktion von Artefakten und die erzielten Bildfrequenzen kritisch betrachtet.

4

5 Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen Volume Rendering Volume Rendering Integral Methoden Ray Casting Artefaktbildung Sampling Artefakte Filtering Artefakte Klassifikations Artefakte Shading Artefakte Blending Artefakte Artefaktreduktion Anforderungen an die Lösung Pre-Integration Adaptive Sampling Interleaved Sampling Implementierung Pre-Integration Tabelle Importance Volume Interleaved Sampling Fragment Shader Evaluierung Qualitätsmerkmale Pre-Integration Adaptive Sampling Interleaved Sampling Zusammenfassung und Ausblick 39 Literatur 43

6

7 1. Einleitung Volume Rendering dient der Visualisierung dreidimensionaler Skalarfelder. Solche Datensätze entstehen in verschiedensten wissenschaftlichen Bereichen beispielsweise bei den bildgebenden Verfahren der Medizin wie der Computertomographie (CT) oder der Magnetresonanztomographie (MRT), physikalischen Simulationen oder in der Mathematik (s. Abbildung 1.1). Diese Arbeit basiert auf Ray Casting, einer Methode des Volume Renderings, die eine hohe Bildqualität liefert. In den Grundzügen existiert Ray Casting bereits seit den 1980er Jahren. Programmierbare Grafikhardware machte im Jahr 2003 eine Implementierung auf der GPU möglich und durch den damit erzielten Geschwindigkeitszuwachs wurde Ray Casting zunehmend als Visualisierungsmethode interessant. Die Anforderung, die etwa eine Ärztin oder ein Arzt an ein bildgebendes Verfahren zu diagnostischen Zwecken stellt, ist auf der einen Seite ein hochqualitatives Bild mit möglichst vielen Details, um eventuelle krankhafte Veränderung im Körper des Patienten gut zu erkennen und auf der anderen Seite eine möglichst schnelle Generierung des Bilds. Kann das Bild in Echtzeit gerendert werden, bietet das die Chance mit dem Volumen zu interagieren. Das bedeutet zum Beispiel, das darzustellende Objekt kann gedreht werden, um einen problematischen Bereich aus verschiedenen Perspektiven zu betrachten. Im Gegensatz zu einer statischen Darstellung kann dies von großem Vorteil sein, um Probleme zu identifizieren und Lösungen zu entwickeln. Diese beiden Ziele stehen in Konkurrenz zueinander. Im einfachsten Fall werden Artefakte vermieden, indem das Datenvolumen durch eine möglichst hohe Anzahl an Samplingpunkten erfasst wird. Dabei geht die Optimierung der Bildqualität mit einer Zunahme der benötigten Rechenleistung einher, welche wiederum zu sinkenden Bildraten führt. Werden die diskreten Volumendaten zur Steigerung der Geschwindigkeit mit einer niedrigen Frequenz abgetastet, entstehen Bildfehler: Informationen, die nicht gelesen werden, können auch nicht im zu berechnenden Bild enthalten sein. Zwar steigt die Rechenleistung der Computersysteme stetig, parallel steigt aber auch die Größe der darzustellenden Volumina. So nimmt das Auflösungsvermögen und damit die Größe der generierten Daten eines Magnetresonanztomographen kontinuierlich zu und auch

8 2 1. Einleitung (a) (b) (c) Abbildung 1.1: Anwendungsbeispiele fu r Volume Rendering: (a) CT-Datensatz eines menschlichen Kopfs, (b) Visualisierung der von Mises Spannung: In den roten Bereichen ist die Spannung des Materials sehr hoch. Dort kann es zu einem Bruch kommen. (c) Visualisierung der Gleichung x2 + y 2 + z 3 = z 2 physikalische Simulationen werden zunehmend komplexer. Aus diesem Grund sind Optimierungsverfahren no tig, die die Bildqualita t verbessern, dabei aber nicht die Laufzeit der Bildgenerierung verla ngern. So soll das Ziel einer optimalen Qualita t bei gleichzeitig interaktiven Bildfrequenzen erreicht werden. Eine Anna herung an dieses Ziel bieten die im Rahmen dieser Arbeit ausgewa hlten und fu r das Visualisierungs-Framework Amira implementierten Techniken Pre-Integration, Adaptive Sampling und Interleaved Sampling. Mit ihrer Hilfe werden Sampling und Klassifikations Artefakten reduziert. Nachdem die Grundlagen des Volume Renderings dargelegt und Ray Casting in diesen Kontext eingeordnet wurde, werden die mo glichen Quellen der Artefaktbildung ero rtert. Daraufhin werden die ausgewa hlten Methoden vorgestellt und deren Implementierung diskutiert. Schließlich folgt die Evaluierung der durch diese Optimierungsmethoden bewirkten Ergebnisse. Dazu wird fu r jede der drei gewa hlten Techniken die erreichte Artefaktreduktion unter Beru cksichtigung der jeweils erzielten Bildraten kritisch betrachtet.

9 2. Grundlagen 2.1 Volume Rendering Volume Rendering dient der Visualisierung dreidimensionaler Skalarfelder. Ein Skalarfeld ordnet jedem Punkt im Raum einen Skalarwert zu (z.b.: Dichte, Druck, Temperatur) und wird über die Funktion f : R 3 R repräsentiert. Die Punkte im Volumen heißen Voxel (Volumetric Pixel). Solche dreidimensionalen Daten müssen zur Visualisierung in geeigneter Weise auf die zweidimensionale Bildebene projiziert werden. Für dieses Ziel wird simuliert, wie Licht durch ein entsprechendes Volumen fällt und schließlich beim Betrachter bzw. auf der Bildebene eintrifft. Grundlage dieser Simulation ist das Volume Rendering Integral (s. Abschnitt 2.2). Volume Rendering als Ganzes lässt sich in fünf Teilaufgaben untergliedern, die zusammen die Volume Rendering Pipeline bilden (s. Abbildung 2.1). Zunächst werden die Volumendaten gesampelt. Die hierbei erfassten Daten bilden die Grundlage. Da auch Punkte zum späteren Bild beitragen, die nicht genau auf dem diskreten Volumengitter liegen, ist Filtering nötig, das aus den diskreten Daten wieder ein kontinuierliches Signal erstellt. Bei der Klassifikation werden die skalaren Daten auf Farb- und Opazitätswerte abgebildet. Im optional darauffolgenden Shading wird die Beleuchtung berechnet, die von außerhalb des Volumens liegenden Lichtquellen abhängt. Die in den vorangegangenen Schritten berechneten Farb- und Opazitätswerte werden bei der Integration kombiniert und schließlich in den Framebuffer geschrieben, von wo aus sie den Weg auf den Monitor finden. Sampling Filtering Klassifikation Shading Integration Framebuffer Abbildung 2.1: Nachdem die Farb- und Opazitätswerte in der Volume Rendering Pipeline berechnet wurden, werden sei in den Framebuffer geschrieben.

10 4 2. Grundlagen 2.2 Volume Rendering Integral Die Beschreibung der Interaktion von Licht mit einem gasförmigen Medium ist der Kern des Volume Renderings. Dazu bedarf es der Entwicklung eines geeigneten physikalischen Modells [Max95]. Ein Lichtstrahl, der das Volumen durchquert und beim Auge des Betrachtenden endet, kann auf dieser Strecke auf verschiedene Weise mit dem Volumen interagieren. Das Zusammenspiel der einzelnen Effekte bestimmt, in welcher Farbe der Betrachter das Licht wahrnimmt (s. Abbildung 2.2). b c d a Abbildung 2.2: Beleuchtungsmodell eines Volumens (a) Absorption, (b) Emission, (c) Einstreuung und (d) Ausstreuung beeinflussen einen Lichtstrahl. Absorption: Kollidiert das Licht mit Partikeln im Volumen, gibt es einen Teil seiner Energie an diese ab. Der Lichtstrahl wird dunkler. Emission: Emittiert das Volumen selbst Licht, befindet sich also eine Lichtquelle in seinem Innern, kann sich die Intensität des durchquerenden Strahls erhöhen. Einstreuung: Aus einer weiteren Quelle in das Volumen einfallende Licht kann durch Partikel so abgelenkt werden, dass es sich mit dem betrachteten Strahl verbindet und ihn somit erhellt. Ausstreuung: Ein Teil des Lichts des betrachteten Strahls kann bei einer Kollision abgelenkt werden und findet daher nicht mehr den direkten Weg zum Betrachter. Die Intensität nimmt ab. Ein sich aus diesen möglichen Interaktionen ergebendes optisches Modell ist das Emisson- Absorption-Modell [Max95]. Es vernachlässigt zur Simplifizierung die Ein- und Ausstreuung. Im Folgenden wird dieses Modell behandelt. Es ist die Basis für das Volume Rendering Integral (s. Gleichung 2.1), welches die Strahldichte I am Punkt D berechnet. Die folgende Beschreibung basiert auf [EHKRS + 06]. Gegeben sei ein dreidimensionales Skalarfeld. Ein Lichtstrahl beginnt im Punkt s 0. In diesem Punkt wird das Licht durch I 0 beschrieben. Es durchquert das Volumen, tritt im Punkt D wieder aus und wird dort durch I(D) definiert. Zur Berechnung des Integrals bildet der Absorptionskoeffizient κ die Skalardaten auf einen Transparenzwert ab, der Emissionskoeffizient q

11 2.3. Methoden 5 bildet die Daten auf einen Farbwert ab. Der Vorgang dieser Abbildung heißt Klassifikation. Der erste Teil des Volume Rendering Integrals I 0 e D s 0 κ(t) dt beschreibt, wie das Licht auf dem Weg durch das Volumen abgeschwächt wird (Absorption). Zu der Absorption wird die Emission D s 0 q(s) e D s κ(t) dt ds addiert. Der durch den Emissionskoeffizienten abgebildete Farbwert wird mit der Absorption multipliziert, die dem Lichtstrahl auf dem verbleibenden Teilstück zum Betrachter hin widerfährt. I(D) = I 0 e D s 0 κ(t) dt + D s 0 q(s) e D s κ(t) dt ds (2.1) Die optische Tiefe τ(s 1, s 2 ) (s. Gleichung 2.2) charakterisiert die Absorption, die der Lichtstrahl zwischen den Punkten s 1 und s 2 erfährt. τ(s 1, s 2 ) = s2 s 1 κ(t)dt (2.2) Aus der optischen Tiefe wird die Transparenz T (s 1, s 2 ) (s. Gleichung 2.3) abgeleitet. Sie nimmt einen Wert zwischen 0 und 1 an. ( s2 ) T (s 1, s 2 ) = exp ( τ(s 1, s 2 )) = exp κ(t)dt s 1 (2.3) Wird die Transparenz in das Volumen Rendering Integral eingesetzt, ergibt sich folgende vereinfachte Darstellung. D I(D) = I 0 T (s 0, D) + q(s) T (s, D) ds s 0 Ziel des Volume Renderings ist die Berechnung der Strahldichte I(D) definiert über das Volume Rendering Integral. Zur Lösung des Integrals wird es in n Intervalle zerlegt, die durch die Punkte s 0, s 1,..., s n bestimmt sind. Daraus ergibt sich die Formel 2.4. c i entspricht der Strahldichte des Intervalls bis zum Punkt s i. 2.3 Methoden I(D) = n n c i i=0 j=i+1 T j, mit c 0 = I(s 0 ) (2.4) Die Methoden zur Approximation des Volume Rendering Integrals lassen sich in zwei Gruppen unterteilen: bild-basierte und objekt-basierte Methoden. Die objekt-basierten Methoden gehen vom darzustellenden Objekt aus. Allen gemein ist, dass sie das komplette Objekt rendern, ob die einzelnen Bereiche zum späteren Bild einen Beitrag leisten, spielt dabei keine Rolle. Das textur-basierte Volume Rendering gehört zu dieser Gruppe. Dort setzt man darauf, dass sich jedes 3D Objekt in eine Vielzahl von 2D Bildern spalten lässt. Diese 2D Bilder sind semi-transparent und ergeben hintereinander gesetzt wieder das ursprüngliche dreidimensionale Objekt. Die bild-basierten Methoden gehen vom zu berechnenden Bild aus. Ray Casting ist eine solche Methode. Für jeden Bildpunkt wird ein Strahl (englisch: Ray) durch das

12 6 2. Grundlagen Volumen geschossen. Ziel ist es, das Bild mit möglichst geringem Rechenaufwand zu realisieren. Dazu wird schon während des Renderns validiert, ob der aktuelle Voxel Teil des fertigen Bilds werden kann. Wenn nicht, wird die Arbeit erst gar nicht investiert. Das betrifft typischerweise 96-99,8% der Punkte [KrWe03] diese sind vollständig transparent oder werden von anderen Voxeln verdeckt. 2.4 Ray Casting Die Technik des Ray Castings besteht in ihren Grundzügen bereits seit 1982 [Roth82]. Erst 2003 wurde sie jedoch durch erweiterte Funktionen des Fragment Processings (DirectX 9.0, Pixel Shader 2.0) auf der GPU möglich und wurde derart erstmals von Röttger et al. [RGWE + 03] vorgestellt. Textur-basiertes Volume Rendering war bereits vorher auf der GPU realisierbar und ermöglichte somit erstmals interaktive Bildfrequenzen. GPU-basiertes Ray Casting führte dann zu einer gesteigerten Darstellungsqualität. Die Fragmente (potentielle Pixel) werden beim Ray Casting unabhängig voneinander berechnet, wodurch ein hohes Maß an Parallelität erreicht und damit die Performance gesteigert wird. Weiterhin zeichnet sich Ray Casting im Gegensatz zum textur-basierten Volumen Rendering durch ein hohes Maß an Flexibilität aus. Hierduch können Optimierungsmethoden wie die in dieser Arbeit behandelten (s. Kapitel 4) mit geringem Aufwand integriert werden. Jeder Pixel der Bildebene korrespondiert mit einem Strahl. Diese Strahlen beginnen am Auge des Betrachters und gehen durch das zu rendernde Volumen. Jeder Strahl approximiert das Volume Rendering Integral für das entsprechende Fragment. An diskreten Punkten auf den Strahlen werden mit den Funktionen q und κ (s. Abschnitt 2.2) die RGBA(Rot, Grün, Blau, Alpha)-Werte berechnet (Klassifikation), kombiniert (Blending) und ergeben zusammen die Farbe des entsprechenden Fragments auf der Bildebene (s. Abbildung 2.3). Abbildung 2.3: Das Ray Casting Schema: Jedem Pixel auf der Bildebene wird ein Strahl zugeordnet. An diskreten Punkten auf diesen Strahlen werden die RGBA-Werte ermittelt und ergeben zusammen den Wert für das jeweilige Fragment. [RGWE + 03] Um 2.5 zu berechnen, werden die Punkte sukzessive von vorne nach hinten entlang der Strahlen abgearbeitet. Bei diesem Front-to-Back Compositing werden die Strahlendichte c, die auf Farben abgebildet wird, und der Alpha-Wert α, der die Opazität angibt, von vorne nach hinten akkumuliert [EHKRS + 06]. Der bis einschließlich der aktuellen Position akkumulierte Farbwert c dst ist gleich der Summe seines vorherigen Wertes und

13 2.4. Ray Casting 7 dem Produkt des Farbwerts an der aktuellen Position c src und der bisher akkumulierten Transparenz (Transparenz = 1 Opazität). Analog wird der Alpha-Wert berechnet. Ist der letzte Samplingpunkt eines Strahls bearbeitet, ist damit auch das Volume Rendering Integral für dieses Fragment approximiert. c dst = c dst + (1 α dst ) c src α dst = α dst + (1 α dst ) α src (2.5) Abbildung 2.4: Abgebildet ist die Vorder- und Rückseite der Bounding Box [KrWe03]. Diese umschließt das Volumen und dient zur Berechnung der Strahlenvektoren. Jeder Punkt auf der Box wird eindeutig durch seinen Farbwert (R,G,B) identifiziert. Beim GPU-basierten Ray Casting werden die Volumendaten in einer 3D-Textur gespeichert. Während der Strahlentraversierung werden die Skalare aus dieser Textur gelesen, wobei das Filtering durch trilineare Interpolation von der Grafikhardware übernommen wird. Der Basis Algorithmus entspricht den folgenden Schritten, wobei der erste Schritt nur einmal ausgeführt werden muss, die Schleife hingegen für jeden Pixel auf der Bildebene. Initialisierung der Strahlen Um die Strahlenvektoren zu berechnen, wird um das zu rendernde Volumen im einfachsten Fall eine Bounding Box gelegt (s. Abbildung 2.4). Diese Box entspricht einem Farbwürfel und markiert die Ränder des Volumens. Jedem Eckpunkt wird eine Texturkoordinate aus dem Bereich (0, 0, 0), (0, 0, 1),..., (1, 1, 1) zugewiesen. Die Vorderseite dieser Box wird nun zu einer 2D Textur gerendert, welche z.b. der Auflösung der Bildebene entspricht. Da jeder Punkt auf diesem Würfel und damit auf der Textur eine eindeutige Farbe (R,G,B) besitzt, kann er eindeutig identifiziert werden. Zur Bestimmung des Eintrittspunkts eines Strahls in das Volumen, wird an dem Punkt, der seinem korrespondierenden Pixel entspricht, der RGB-Wert aus der Textur gelesen und auf x-, y- und z-koordinaten abgebilet. Die erhaltenen Koordinaten entsprechen dem Eintrittspunkt in das Volumen. Analog erfolgt das Verfahren zur Bestimmung des Austrittspunkts aus dem Volumen hier wird die Rückseite der Box gerendert. Mit diesen beiden Punkten lässt sich

14 8 2. Grundlagen dann auch die Richtung des Strahls berechnen [KrWe03]. Als Alternative zu einer Bounding Box bietet sich eine Bounding Geometry [Scha05] an, die die Ränder des Volumens präzise markiert. Dadurch werden die leeren Randbereiche beim Ray Casting erst gar nicht berücksichtigt und Rechenzeit gespart. Schleife zur Traversierung eines Strahls Sampling An der aktuellen Strahlenposition wird der Dichtewert aus dem Volumen gelesen. Klassifikation Mittels einer Transferfunktion wird der Dichtewert auf eine Farbe und eine Opazität abgebildet. Compositing Per Front-to-Back Compositing (s. Gleichung 2.5) werden die Werte des aktuellen Punkts mit den bereits erhobenen Werten kombiniert und somit die Farbe und der Alpha-Wert des entsprechenden Fragments auf der Bildebene bestimmt. Position aktualisieren Entsprechend der zuvor definierten Sampling Entfernung wird zum nächsten Punkt gesprungen. Terminierung des Strahls Es folgt die Überprüfung, ob die Verfolgung des Strahls eingestellt werden kann. In jedem Fall erfolgt dies, wenn der akuelle Punkt nicht mehr innerhalb der Bounding Box bzw. Geometry liegt und damit das Volumen verlassen hat oder wenn die akkumulierte Opazität 100 Prozent erreicht hat und weiter hinten liegende Punkte somit ohnehin verdeckt werden (Early Ray Termination).

15 3. Artefaktbildung Beim Volume Rendering besteht meist die Anforderung, Bildfrequenzen zu erreichen, die eine Interaktion mit dem Volumen in Echtzeit ermöglichen. Dabei muss zwangsläufig ein Kompromiss zwischen Darstellungsqualität und Performance gefunden werden. Das ist ein Grund für die Entstehung von Bildfehlern (Artefakten). Eine weitere Ursache liegt darin, dass die Volumendaten nur diskret gespeichert werden können, das darzustellende Objekt im Original aber durch ein kontinuierliches Signal beschrieben wird. Artefakte können in jedem Schritt entlang der Volume Rendering Pipeline entstehen (s. Abbildung 3.1). Folgend werden mögliche Quellen für Artefakte erläutert. Als Grundlage dient hierfür [EHKRS + 06]. Im Rahmen dieser Arbeit liegt der Fokus auf der Reduktion von Sampling und Klassifikations Artefakten. Abbildung 3.1: Jeder Schritt entlang der Volume Rendering Pipeline kann zur Artefaktbildung führen. [EHKL + 04] 3.1 Sampling Artefakte Sampling Artefakte entstehen durch eine zu groß gewählte Samplingentfernung; wichtige Bildinformationen gehen verloren, weil die entsprechenden Bildbereiche nicht ab-

16 10 3. Artefaktbildung getastet werden. Hierbei kommt es häufig zu Wood-grain Artefakten [EHKL + 04] sie erinnern an die Maserung in aufgeschnittenem Holz (s. Abbildung 3.2). Die Traversierung der durch das Volumen geschossenen Strahlen beginnt jeweils am Schnittpunkt mit der Volumenvorderseite. Im einfachsten Fall wird in konstanten Schrittweiten zum jeweils nächsten Punkt gesprungen. Somit bilden die Samplingpunkte auf den verschiedenen Strahlen eine Vielzahl von Samplingebenen, die das Volumen schneiden. Treffen die Strahlen auf ein Objekt, werden Bereiche, die zwischen solchen Ebenen liegen, ignoriert. Es kommt zu den signifikaten Mustern, wenn das Volumen geometrische Formen beinhaltet und diese durch eine zu geringe Samplingfrequenz nicht ausreichend erfasst werden. Die fehlenden Informationen führen dann zur Entstehung von geometrischen Fehlern. Das Prinzip gleicht dem des Moiré-Effekts: Überschneiden sich verschiedene geometrische Muster oder Raster, entstehen neue Linien [Amid00]. Die Samplingpunkte bilden dabei das eine Raster, welches über die geometrischen Muster innerhalb des Volumens gelegt wird. Abbildung 3.2: Zu hohe Samplingentfernungen führen zu Wood-grain Artefakten. Das Nyquist-Shannon Abtasttheorem besagt: Soll aus einem diskretisierten Signal wieder das ursprüngliche kontinuierliche Signal gewonnen werden, so muss bei der Diskretisierung die Samplingfrequenz f sampling, mit der das Originalsignal abgetastet wird, mindestens dem Doppelten seiner maximalen Frequenz f max entsprechen der Nyquist- Frequenz f nyquist (f sampling >= f nyquist = 2f max ) [Shan49]. Dieses Theorem ist Grundlage jeglicher Art der Signalverarbeitung und gilt daher im Besonderen auch in der Bildverarbeitung. Im Bereich des Volume Renderings spielt es an mehreren Stellen eine Rolle. So müssen zunächst die Daten entsprechend dem Theorem erhoben werden. Wenn ein Objekt bei einer Computertomographie mit einer zu geringen Auflösung erfasst wird, kann aus den gewonnenen Daten kein zufriedenstellendes Bild berechnet werden. Darüberhinaus ist das Theorem im Laufe des Ray Castings bei der Strahlentraversierung von Bedeutung. Werden zuwenig Punkte gesampelt, kann das Signal nicht korrekt rekonstruiert werden und es kommt zu Sampling Artefakten. Wie in Abbildung 3.3 dargestellt, genügt bei der Diskretisierung die doppelte Frequenz des Originalsignals (zwei Samples pro Periode), um es vollständig rekonstruieren zu

17 3.1. Sampling Artefakte 11 Abbildung 3.3: Werden mindestens zwei Samples pro Periode auf der Sinuskurve erfasst, kann das Signal korrekt rekonstruiert werden (a: 4 Samples, b,c: 2 Samples). Diese Grenze entspricht der Nyquist-Frequenz. Bei gegebener Amplitude spielt es keine Rolle, welche Punkte gesampelt werden (c). Werden weniger Punkte erfasst (d: 1,5 Samples pro Periode) kann das Signal nicht mehr rekonstruiert werden: Es entstehen Artefakte. können. Die in (a) dargestellte Abtastung mit der vierfachen Frequenz bringt keinen weiteren Vorteil. Da in dem Beispiel die Amplitude bekannt ist, ist es unerheblich, wann genau gesampelt wird Die Anzahl der in (b) und (c) gewonnenen Samples entspricht der Nyquist-Frequenz und ist damit hinreichend. Sinkt die Sampling Frequenz unter die Nyquist-Frequenz (d), wird das Signal fehlerhaft rekonstruiert. Auch in realen Anwendungsfällen ist die Amplitude bzw. maximale Frequenz zur Zeit der Rekonstruktion bekannt. Eine Audio CD wird etwa immer mit 44 khz (maximale Frequenz 22kHz) abgetastet. Im Fall des Volume Renderings ist die maximale Frequenz durch den Quotienten von eins und der größtmöglichen Differenz von einem Skalar der Volumendaten zum nächsten definiert [EHKRS + 06]. Die Skalare nehmen normalisierte Werte zwischen null (minimaler Skalarwert s min ) und eins (maximaler Skalarwert s max ) an. Die maximale Frequenz ist damit eins, die Nyquist-Frequenz zwei (s. Gleichungen 3.1 und 3.2). Zur Vermeidung von Sampling Artefakten müssen demnach pro Voxel mindestens zwei Punkte erfasst werden. f max = 1 = 1 s max s min 1 0 = 1 (3.1) f nyquist = 2f max = 2 (3.2)

18 12 3. Artefaktbildung 3.2 Filtering Artefakte Beim Filtering wird aus den Voxeln, die auf dem diskreten Volumengitter liegen, wieder ein kontinuierliches Signal berechnet. So können bei der Strahlentraversierung auch Punkte gesampelt werden, die nicht genau auf einem Knoten des Gitters liegen (s. Abschnitt 2.4). Je nach Qualität des verwendeten Filters kommt es zu Filtering Artefakten: Das rekonstruierte Signal stimmt nicht mehr genau mit dem ursprünglichen überein. 3.3 Klassifikations Artefakte Die Volumendaten liegen zunächst in Form skalarer Dichtewerte vor. Durch eine Transferfunktion werden aus diesen Werten dann die zur Weiterverarbeitung nötigen berechnet. So wird zu den Punkten im Volumen der jeweilige RGBA-Wert mit einer solchen Funktion bestimmt. Dieser Vorgang heißt Klassifikation. Meist wird die Transferfunktion aus Effizienzgründen durch eine Lookup-Tabelle realisiert [EHKRS + 06]. Anstatt zur Laufzeit die Werte in die Funktion einzusetzen, müssen lediglich die vorberechneten Werte aus der Tabelle gelesen werden. Der damit einhergehende Genauigkeitsverlusst wird billigend in Kauf genommen die Lookup-Tabelle besitzt nur diskrete Werte, während die zugrundeliegende Transferfunktion stetig ist. Die Klassifikation kann innerhalb der Volume Rendering Pipeline grundsätzlich an zwei verschiedenen Positionen erfolgen: vor dem Filtering (Pre-Classification) oder nach dem Filtering (Post-Classification und Pre-Integrated Classification). Pre-Classification ist nicht in der Lage hochfrequente Transferfunktionen entsprechend zu reproduzieren, da hier die Funktion lediglich für die diskreten Volumendaten berechnet wird. Hochfrequente Informationen, die zwischen den diskreten Werten entstehen könnten, werden nicht gespeichert. Post-Classification kann hohe Frequenzen reproduzieren, allerdings muss die Samplingauflösung dann bei solch hochfrequenten Transferfunktionen deutlich erhöht werden, um Artefakte zu vermeiden (s. Nyquist-Frequenz, Abschnitt 3.1). Das optisch ansprechendste Resultat liefert die Pre-Integrated Classification, welche in der Lage ist, hochfrequente Transferfunktionen abzubilden auch ohne die Anzahl der Samplingschritte zu steigern (s. Abschnitt 4.2). Die Bildqualität differiert deutlich je nach verwendeter Methode (s. Abbildung 3.4). 3.4 Shading Artefakte Wird das Volumen von externen Lichtquellen beschienen, ist zur Berechnung des Beleuchtungsmodells ein zusätzlicher Schritt nötig. Beim Shading wird zur Berechnung der Lichtreflexion zu jedem Punkt des Volumens sein Gradient berechnet. Von den Gradienten hängt die spätere Qualität der Beleuchtung und damit die Anzahl der entstehenden Shading Artefakte ab. Oftmals werden zur Performancesteigerung vorberechnete Gradienten verwendet, was allerdings mit einem höheren Speicherverbrauch einhergeht. Beim Filtering () werden dann auch Gradienten interpoliert, was eine Quelle für Shading Artefakte ist. Je ungenauer (32 Bit, 16 Bit, 8 Bit) die vorberechneten Gradienten gespeichert werden, desto mehr Artefakte entstehen. Bessere Ergebnisse werden erzielt, wenn die Gradienten on-the-fly approximiert werden. Hierbei muss ein Performanceverlusst in Kauf genommen werden. Speicherplatz hingegen wird eingespart. Weiterhin beeinflusst

19 3.5. Blending Artefakte 13 Abbildung 3.4: Pre-Classification, Post-Classification, Pre-Integrated Classification. Die Unterschiede in der Bildqualita t sind auffa llig. [EnEr02] die Genauigkeit der zur Gradientenapproximation verwendeten Methode die Artefaktbildung. Genauere Methoden konsumieren meist mehr Rechenzeit bzw. Speicherplatz, fu hren aber zu einer verminderten Artefaktbildung. 3.5 Blending Artefakte Beim Blending werden die berechneten Punkte mit den bereits im Framebuffer vorhandenen kombiniert. Hier spielt die Genauigkeit (8 Bit, 16 Bit, 32 Bit) des Framebuffers eine entscheidende Rolle. Je ungenauer die Werte gespeichert sind, desto gro ßer ist die jeweilige Abweichung im Vergleich zum Originalwert. Wenn mehrfach Werte mit den bereits berechneten im Framebuffer geblendet werden, akkumulieren sich die Abweichungen und somit entsteht mit sinkender Genauigkeit fu r jeden Pixel ein gro ßerer Fehler. Damit erho ht sich auch die Anzahl der entstehenden Blending Artefakte. Aktuelle Single-Pass GPU Ray Caster [RGWE+ 03] mu ssen keine Werte mehr zwischenspeichern, wodurch diese Artefaktquelle nur noch eine untergeordnete Rolle spielt.

20

21 4. Artefaktreduktion 4.1 Anforderungen an die Lösung Im Rahmen dieser Arbeit sollen Methoden implementiert werden, die sich in einen bestehenden GPU Ray Caster (s. Abbildung 4.1) integrieren lassen und in der Lage sind, die Sampling und Klassifikations Artefakte signifikant zu verringern ohne sich dabei negativ auf die Performance auszuwirken. In diesem Kapitel werden aus der Vielzahl an vorhandenen Optimierungsmethoden drei für dieses Ziel geeignete Methoden vorgestellt. Anschließend wird deren Implementierung erörtert. Diese Techniken sind Pre-Integration, Adaptive Sampling und Interleaved Sampling. Initialisierung der Strahlen Fragment in Frame-Buffer schreiben für jeden Strahl Skalar an aktueller Position aus dem Volumen auslesen nein ja RGBA-Wert aus Transferfunktion Textur auslesen Compositing Zum nächsten Punkt springen Check auf Terminierung Abbildung 4.1: Ray Casting Basis Algorithmus Pre-Integration verspricht, ohne rechenintensives Oversampling und Entstehung von Artefakten hochfrequente Transferfunktionen abzubilden. Dazu werden die Farbe und die Opazität für alle möglichen Kombinationen von Skalarwerten unter Berücksichtigung der Distanz zwischen ihnen vorberechnet.

22 16 4. Artefaktreduktion Wird zusätzlich Adaptive Sampling verwendet, kann durch abschnittsweise variierende Samplingfrequenzen die insgesamt nötige Anzahl von Samplingpunkten weiter reduziert werden. Um während der Strahltraversierung die aktuelle Schrittweite zu bekommen, wird eine zusätzliche Datenstruktur benötigt. Zur Erstellung dieses Importance Volumes ist auch hier eine Vorverarbeitung der Daten nötig. Als simple Lösung, um Artefakte zu verstecken, bietet sich Interleaved Sampling an. Die Artefakte werden hier nicht beseitigt, sondern durch weniger auffällige ersetzt. Dies kann interessant sein, wenn eine Verarbeitung der Daten im Vorfeld nicht möglich ist. 4.2 Pre-Integration Wie in Abschnitt 3.3 dargelegt, führt bei einer hochfrequenten Transferfunktion sowohl die Pre-Classification als auch die Post-Classification nicht zu einer zufriedenstellenden Bildqualität. Ein Lösungsansatz für dieses Problem ist Pre-Integration [EnKE01]. Ziel ist es, die hohen Frequenzen der Transferfunktion adäquat zu erfassen, ohne dabei die Anzahl der Samplingpunkte drastisch zu erhöhen wie es bei der Post-Classification zur Vermeidung von Artefakten nötig ist. Die folgende Beschreibung der Technik basiert auf [EnKE01] und [EHKRS + 06]. Die Farbe und die Opazität für Teilstrecken des Volumens werden vorberechnet und in einer dreidimensionalen Matrix (Pre-Integration Tabelle) gespeichert. Indiziert wird sie mit dem Dichtewert des Startpunkts (front) S f der Strecke, mit dem Dichtewert des Endpunkts (back) S b und der Distanz d zwischen diesen beiden Punkten. Zwischen den Punkten wird linear interpoliert. Das ist im Vergleich zur Post-Classification ein großer Fortschritt. Dort werden nur die Werte der tatsächlichen Samplingpunkte betrachtet und mögliche Informationen zwischen ihnen gehen verloren, was eine Quelle für Artefakte ist. Der Strahlparameter λ repräsentiert die Koordinaten des Skalarfelds, das an diskreten Punkten (x(λ)) betrachtet wird (s. Abbildung 4.2). Die Opazität α i und die Farbe c i einer Teilstrecke von x(i d) bis x((i+1)d) werden in der Pre-Integration Tabelle gespeichert. Der Skalar des Anfangspunkts s f ist s(x(i d)); der Skalar des Endpunkts s b ist s(x((i + 1)d)). Abbildung 4.2: Das Skalarfeld als stückweise lineare Funktion. [EHKL + 04] Eingesetzt in Formel 2.3, ergibt sich für die Transparenz am Punkt i die Gleichung

23 4.2. Pre-Integration 17 ( α i = 1 exp (i+1)d i d κ (s(x(λ))) dλ Die Transparenz wird dann innerhalb des Intervals [s f, s b ] approximiert (s. Approximation 4.1). ω charakterisiert die Richtung des Lichtstrahls. ). ( α i 1 exp 1 0 ) κ((1 ω)s f + ωs b )d dω (4.1) Durch Umformung gelangt man zu folgender Darstellung. ( α i 1 exp d s b s f sb s f ) κ(s)ds (4.2) Das Integral in 4.2 kann als die Differenz der Integrale von 0 bis s b und von 0 bis s f geschrieben werden (s. Gleichung 4.3). T (s) = s Diese Umformung führt zu folgender Darstellung. 0 κ(s )ds (4.3) ( α i 1 exp d ) (T (s b ) T (s f )) s b s f (4.4) Da alle möglichen Kombinationen von skalaren Werten für s f und s b berechnet werden müssen, hat diese Darstellung den Vorteil, dass die Integrale für die annehmbaren Werte vorberechnet werden können. Dies verkürzt die insgesamt benötigte Rechenzeit. Die Pre-Integration Tabelle hängt direkt von der Transferfunktion ab. Infolgedessen muss sie bei jeder Änderung der Transferfunktion neu berechnet werden. Die Effizienz dieses Algorithmus bestimmt daher, inwiefern noch Interaktion in Echtzeit mit dem Volumen möglich ist. Die Farbe am Punkt i wird durch die Approximation c i 1 q((1 ω)s f + ωs b ) 0 ( ω ) exp κ((1 ω )s f + ω s b )d dω d dω 0 beschrieben. Der Exponentialterm beschreibt die Abschwächung des Lichtstrahls innerhalb des betrachteten Abschnitts. Dieser kann zur Vereinfachung und der damit einhergehenden Beschleunigung nach [EnKE01] vernachlässigt werden, was zur Darstellung 4.5 führt.

24 18 4. Artefaktreduktion c i 1 0 q((1 ω)s f + ωs b )d dω (4.5) Durch Umformung gelangt man zu folgender Approximation. c i d s b s f sb s f q(s)ds (4.6) Dank der Vernachlässigung der Absorption innerhalb des Intervalls ist es auch hier möglich die Integrale der Skalarwerte vorzuberechnen (s. Gleichnung 4.7), K(s) = woraus sich folgende Darstellung ergibt. s 0 q(s )ds (4.7) c i d s b s f (K(s b ) K(s f )) (4.8) Die Pre-Integration Tabelle kann auf der CPU berechnet und dann in Form einer 3D RGBA-Textur auf die GPU geladen werden. Bei Verwendung einer festen Samplingentfernung (d ist konstant) kann auf die dritte Dimension verzichtet und damit Rechenzeit und Speicherplatz gespart werden. Auch bei variierender Samplingdistanz kann die 2D Variante genutzt werden, sofern die Entfernung während der Akkumulation der RGBA- Werte berücksichtigt wird. Während der Strahlentraversierung im Fragment Shader wird die Transferfunktion jetzt nicht wie bei der Post-Classification direkt auf den aktuellen Samplingpunkt angewandt, vielmehr wird die neu erstellte Lookup-Tabelle mit dem aktuellen und dem vorherigen Skalarwert indiziert (s. Abbildung 4.3). Dazu muss der Dichtewert des jeweils vorherigen Samplingpunkts zwischengespeichert werden. 4.3 Adaptive Sampling Adaptive Samling [RGWE + 03] macht sich die Tatsache zu Nutze, dass die Teilbereiche im Volumen von unterschiedlicher Bedeutung für das zu rendernde Bild sind. So sind homogene Bereiche, in denen sich die Eigenschaften von Voxel zu Voxel nicht oder kaum ändern, von geringerer Bedeutung als Bereiche mit filigranen Details. Die Samplingfrequenz ist zu diesem Zweck nicht mehr konstant, sondern wird im Laufe der Strahlentraversierung von Punkt zu Punkt neu bestimmt. Die Abstände der Samplingpunkte werden vergrößert, wenn im Verlauf eines Strahls die Volumendaten nur geringfügig variieren. Umgekehrt wird in detaillierten Bereichen die Samplingentfernung verringert (s. Abbildung 4.4). Um die Schrittweite während der Traversierung anpassen zu können, wird eine zusätzliche Datenstruktur benötigt: das Importance Volume. Die isotropen Samplingentfernungen werden vorberechnet und dann im Importance Volume zur Verfügung gestellt.

25 4.3. Adaptive Sampling 19 Abbildung 4.3: Ray Casting Algorithmus mit Pre-Integration Zur Bestimmung der Schrittweiten ist es notwending, das Volumen hinsichtlich homogener Bereiche zu untersuchen. Nach [RGWE + 03] soll diese Berechnung auf der zweiten Ableitung der Volumendaten und der Pre-Integration der Transferfunktion beruhen. Nach [EHKRS + 06] beruht die Berechnung auf der Variation der Volumendaten und einer gegebenen Toleranz, die festlegt, in welchem Bereich Voxel als homogen zu betrachten sind. Die Auflösung des Importance Volumes kann, je nach gewünschter Genauigkeit, variieren. Wenn die Detektion homogener Bereiche einzig auf der Variation der Sklare beruht, ist es zwingend erforderlich Pre-Integrated Classification zu verwenden. Als homogen identifizierten Bereichen werden große Schrittweiten zugeordnet. Die Samplingfrequenz entspricht zunächst auch in diesen Bereichen mindestens der Nyquist- Frequenz (s. Abschnitt 3.1,) obwohl nicht mehr zwei Samples pro Voxel genommen werden, da sichergestellt ist, dass die Skalare nur innerhalb der Toleranzgrenze variieren. Es ist aber nicht ausgeschlossen, dass eine Transferfunktion in diesen Bereichen neue hochfrequente Änderung einführt. Dann ist nicht mehr garantiert, dass mindestens mit der Nyquist-Frequenz gesampelt wird. Bei Verwendung von Pre-Integration kommt es dennoch nicht zu Artefakten. Die hohen Frequenzen werden abgebildet, da sie bereits beim Erstellen der Pre-Integration Tabelle in die Berechnung der Farbe und der Opazität für die entsprechenden Intervalle mit eingegangen sind. Wird auf Pre-Integration verzichtet, so muss das Importance Volume unter Berücksichtigung der Transferfunktion aufgebaut werden, also aufgrund der Variantion der RGBA-Werte. Das bedeutet, es muss bei jeder Änderung neu erstellt werden. Eine In-

26 20 4. Artefaktreduktion (a) (b) Abbildung 4.4: (a) zeigt das gerenderte Volumen. (b) zeigt die zugehörige Samplingdichte. Je dunkler ein Punkt, desto mehr Samples wurden auf dem korrespondierenden Strahl genommen. Mit Adaptive Sampling und Early Ray Termination kann die Anzahl an Sampling Schritten je nach Bereich deutlich reduziert werden. teraktion in Echtzeit mit dem Volumen mit Variation der Transferfunktion scheint in diesem Fall kaum möglich. Bei Verwendung von Adaptive Sampling muss bei der Akkumulation der RGBA- Werte die variierende Distanz zwischen den Samplingpunkten berücksichtigt werden. Dazu wird der Algorithmus zur Erstellung der Pre-Integration Tabelle entsprechend erweitert. Die entstehende Datenstruktur wird in eine 3D RGBA-Textur geladen, die der Shader nun zusätzlich mit der aktuellen Samplingentfernung indiziert. Alternativ kann weiterhin die zweidimensionale Lookup-Tabelle verwendet werden. In diesem Fall muss die Entfernung bei der Akkumulation der RGBA-Werte rausgerechnet werden. Zum Festlegen der lokalen Samplingdistanz muss das Volumen zuvor auf homogene Bereiche untersucht werden. Mit dem Ergebnis dieser Untersuchung wird das Importance Volume erstellt, welches die isotropen maximalen Schrittweiten beinhaltet und in eine 3D Textur geladen wird. Der Shader indiziert es mit der aktuellen Samplingposition und erhält so die Entfernung zum nächsten Punkt (s. Abbildung 4.5). Um das Volumen auf homogene Bereiche hin zu untersuchen, bietet sich eine Gradientenanalyse an. Gradienten werden in der Bildbearbeitung häufig zur Kantendetektion eingesetzt und es existiert eine Vielzahl bewährter Algorithmen zu ihrer Approximation. Die Gradienten zeigen die Bereiche an, in denen die Bildinformationen signifikant variieren. Dort befindet sich eine Kante. Im Umkehrschluss bedeutet das, Bereiche zwischen den Kanten sind homogen. Der Sobel-Operator [SoFe68] ist ein solcher Approximationsalgorithmus. Er zieht für die Berechnung der Gradienten einen Block der Dimension 3 x 3 x 3 um den jeweiligen Voxel in Betracht. Diese 27 Voxel werden zur Gradientenapproximation mit Hilfe einer Matrix (Filterkern) gefaltet. Je größer der entstehende Wert ist, desto stärker variieren an dieser Stelle die Volumendaten. Ein optimierter Filterkern wurde von Scharr 2000 [Scha00] entwickelt. Aus dem Gradientenvolumen wird ein Homogenitätsvolumen erstellt. Seine Dimension entspricht dem des später zu erstellenden Importance Volume und wird vom Nutzer im Verhältnis zum Skalarfeld festgelegt. Bei sehr großen Datensätzen lässt sich so wertvol-

27 4.4. Interleaved Sampling 21 Abbildung 4.5: Ray Casting Algorithmus mit Pre-Integration und Adaptive Sampling ler Speicherplatz auf der GPU sparen. Entsprechend der festgelegten Auflösung werden die Voxel des Gradientenvolumens zu Blöcken zusammengefasst. Liegen alle Skalarwerte eines Blocks unter dem festgelegten Schwellwert, wird dieser Block im Homogenitätsvolumen als homogen markiert andernfalls als heterogen. Das Importance Volume gibt die konkrete isotrope Schrittweite zum nächsten Samplingpunkt an. Zu diesem Zweck wird für jeden Voxel des Importance Volumes der entsprechende im Homogenitätsvolumen betrachtet und die Entfernung zum nächstliegendsten Punkt im Skalarfeld berechnet, der nicht innerhalb des aktuellen homogenen Bereichs liegt. 4.4 Interleaved Sampling Wood-grain Artefakte bilden geometrische Muster und werden somit als besonders störend empfunden. Interleaved Sampling [Scha05] oder Stochastic Jittering [EHKRS + 06] entfernen diese symmetrischen Fehler, erhöhen dabei aber nicht die Anzahl der Samplingpunkte. Jedem Strahl wird ein zufälliger Offset zugewiesen. Die Strahlen starten nun nicht mehr alle von derselben Ebene, wodurch sich auch die Samplingpunkte auf den verschiedenen Strahlen um eine zufällige Größe verschieben. Das Volumen wird noch

28 22 4. Artefaktreduktion immer mit der gleichen Genauigkeit abgetastet wie zuvor, doch die Fehler verteilen sich jetzt u ber das gesamte Bild. Hierdurch wirkt das Bild zwar etwas verrauscht, die Woodgrain Artefakte verschwinden jedoch weitgehend (s. Abbildung 4.6). Dem Betrachter erscheint das Ergebnis deutlich angenehmer. Die Berechnung der Offsets erfolgt einmalig bei der Initialisierung der Strahlen. Die Performance wird durch diese Technik daher nur in vernachla ssigbarem Ausmaß beeinflusst. Der Offset sollte aus dem rechtsoffenen Intervall zwischen null und der Samplingentfernung gewa hlt werden. So ist die Anzahl mo glicher Verschiebungen maximal. (a) (b) Abbildung 4.6: (a) Ohne Interleaved Sampling sind Wood-grain Artefakte zu sehen. (b) Mit Interleaved Sampling werden sie weitgehend durch ein gleichma ßiges Rauschen ersetzt. Die Wood-grain Artefakte ko nnen dazu fu hren, dass bestimmte feine Merkmale wie etwa du nne Gewebeschichten gar nicht dargestellt werden. Hier kann durch Interleaved Sampling davon ausgegangen werden, dass wenigstens ein paar Samplingpunkte auch diese Bereiche treffen. In einem weiteren Schritt ko nnten diese Bereiche dann genauer untersucht werden, indem die Samplingfrequenz entsprechend erho ht wird. Die Kombination von Interleaved Sampling und Pre-Integration scheint bei niedrigen Samplingfrequenzen sinnvoll. Bei Nutzung von Adaptive Sampling ist jedoch keine Verbesserung zu erwarten, da in diesem Fall das Volumen in jedem Bereich in Bezug auf die Skalardaten mit mindestens der Nyquist-Frequenz abgetastet wird und so ohnehin keine Wood-grain Artefakte entstehen Implementierung Pre-Integration Tabelle Fu r die Berechnung der Pre-Integration Tabelle werden zuerst die Integrale fu r die Farben und die Opazita t berechnet (s. Listing 4.1, Zeilen 2-13). Diese in den Gleichungen 4.3 und 4.7 beschriebenen Integrale werden durch die Diskretisierung der Transferfunktion zu Summen, die jeweils in einem Array gespeichert werden. Es wird u ber alle Skalare im Datenvolumen iteriert und in jedem (Integral-)Array (R,G,B,A) an dem entsprechenden Index der bisher akkumulierte Wert gespeichert. Bei jedem Schritt werden der aktuelle Skalar und sein Nachfolger in die Transferfunktion eingesetzt und zwischen ihnen linear

29 4.5. Implementierung 23 interpoliert. Das Ergebnis wird mit dem bis dahin akkumulierten Wert addiert. Die Farbwerte werden zuvor zusätzlich mit dem Alpha-Wert des Segments multipliziert (s. Listing 4.1, Zeilen 5-9). Dann wird die eigentliche Lookup-Tabelle berechnet. Hierzu wird über alle möglichen Kombinationen von Werten für die Skalare s f und s b iteriert (Wert des Startpunkts bzw. Endpunkts eines Intervalls, s. Abbildung 4.2 und Listing 4.1, Zeilen 16-39). Unterscheiden sich s f und s b, so werden die RGBA-Werte entsprechend den Approximationen 4.4 und 4.8 für die betreffende Position der Pre-Integration Tabelle berechnet, wobei für die Distanz d konstant der Wert eins angenommen wird (s. Listing 4.1, Zeilen 24-27). Unterscheiden sich s f und s b hingegen nicht, werden die berechneten Integrale nicht benötigt und der jeweilige Wert kann direkt mit der Transferfunktion berechnet werden (s. Listing 4.1, Zeilen 31-34). Diese Implementierung basiert auf [EHKRS + 06]. 1 // compute i n t e g r a l f u n c t i o n s 2 r = g = b = a = 0 ; 3 f o r e a c h ( value i n S c a l a r V a l u e s ) 4 { 5 asegment = ( TransferF [ value ]. a + TransferF [ value +1]. a ) / 2 ; 6 r += ( TransferF [ value ]. r + TransferF [ value +1]. r ) / 2 asegment ; 7 g += ( TransferF [ value ]. g + TransferF [ value +1]. g ) / 2 asegment ; 8 b += ( TransferF [ value ]. b + TransferF [ value +1]. b ) / 2 asegment ; 9 a += asegment ; r I n t e g r a l [ value ] = r ; g I n t e g r a l [ value ] = g ; b I n t e g r a l [ value ] = b ; 12 a I n t e g r a l [ value ] = a ; 13 } // compute 2d look up t a b l e from i n t e g r a l f u n c t i o n s 16 f o r e a c h ( sb i n S c a l a r V a l u e s ) 17 { 18 f o r e a c h ( s f i n S c a l a r V a l u e s ) 19 { 20 smin = min ( s f, sb ) ; smax = max( s f, sb ) ; i f ( smax!= smin ) 23 { 24 r = 1 / ( smax smin ) ( r I n t e g r a l [ smax ] r I n t e g r a l [ smin ] ) ; 25 g = 1 / ( smax smin ) ( g I n t e g r a l [ smax ] g I n t e g r a l [ smin ] ) ; 26 b = 1 / ( smax smin ) ( b I n t e g r a l [ smax ] b I n t e g r a l [ smin ] ) ; 27 a = 1 exp( 1 / ( smax smin ) ( a I n t e g r a l [ smax ] a I n t e g r a l [ smin ] ) ) ; 28 } 29 e l s e 30 { 31 r = TransferF [ s f ]. r TransferF [ s f ]. a ; 32 g = TransferF [ s f ]. g TransferF [ s f ]. a ; 33 b = TransferF [ s f ]. b TransferF [ s f ]. a ; 34 a = 1 exp ( TransferF [ s f ]. a ) ; 35 } preinttable [ s f ] [ sb ] = ( r, g, b, a ) ; 38 } 39 } Listing 4.1: Berechnung der 2D Pre-Integration Tabelle in Pseudocode Importance Volume Der erste Schritt hin zum Importance Volume ist die Approximation der Gradienten. Dazu wird ein dreidimensionaler Sobel-Operator mit dem von Scharr [Scha00] optimierten Filterkern verwendet (s. Matrizen 4.9). Die Matrizen zeigen den verwendeten Kern in x-richtung, die Kerne für die y- bzw. z-richtung ergeben sich durch geeignete

30 24 4. Artefaktreduktion Rotation. Für jeden Voxel der Volumendaten wird der Gradient approximiert und in einem Gradientenvolumen gespeichert (4.9) Durch eine Analyse des erstellten Gradientenvolumens wird nun das Homogenitätsvolumen aufgebaut (s. Listing 4.2, Zeilen 6-13). Die Dimension dieses Volumens ergibt sich durch die Dimension des Skalarfelds multipliziert mit dem vom Nutzer festgelegten Verhältnis (z.b.: 1:64, 1:8, 1:1). Hat das Datenvolumen eine Größe von 256 x 256 x 256 Voxeln, so ergibt sich bei einem Verhältnis von 1:8 eine Ausdehnung von 128 x 128 x 128 Voxeln für das Homogenitätsvolumen und damit auch für das später zu erstellende Importance Volume. Es wird nun über alle Voxel des Homogenitätsvolumens iteriert. Als erstes werden die zum aktuellen Voxel korrespondierenden des Gradientenvolumens ermittelt. Bei einem Größenverhältniss von 1:8 wird also jedem Voxel ein Block von 2 x 2 x 2 Gradienten zugeordnet. Liegen alle Gradienten in diesem Block unter dem definierten Schwellwert, ist der Block homogen und dem entsprechenden Voxel wird ein Wert von eins zugeordnet. Andernfalls ist der Block heterogen und es wird eine null gespeichert. Anschließend wird das Importance Volume berechnet (s. Listing 4.2, Zeilen 16-27). An jeder Position, an der das Homogenitätsvolumen einen heterogenen Bereich signalisiert, wird die Samplingentfernung auf 1/2 gesetzt. Denn innerhalb dieser Blöcke variieren die Volumendaten. Die Schrittweite muss immer mindestens der Nyquist-Frequenz entsprechen (s. Abschnitt 3.1) und so müssen in diesen Bereichen zwei Samples pro Voxel erhoben werden. Ist der aktuelle Block dagegen homogen, wird die Entfernung zum nächstliegenden homogenen Block berechnet. Diese Entfernung geteilt durch die dritte Wurzel des Größenverhältnisses von Datenvolumen und Importance Volume ergibt die entsprechende Distanz in Voxeln im Skalarfeld. Diese Distanz wird noch durch zwei geteilt, um die lokale Samplingentfernung entsprechend der Nyquist-Frequenz zu erhalten Interleaved Sampling In dem verwendeten GLSL Fragment Shader selbst lassen sich keine Zufallszahlen erzeugen. Daher müssen die Zahlen vorher auf der CPU berechnet und anschließend in eine Textur auf die GPU geladen werden. Für die größtmögliche Varianz ist eine 2D Textur in Auflösung der Bildebene nötig. So kann theoretisch jedem Strahl ein anderer Wert zugeordnet werden. Doch auch eine 32 x 32 Textur erzielt schon gute Ergebnisse, wenn sie kachelartig über die gesamte Bildebene gelegt wird [EHKRS + 06]. Das spart Rechenzeit auf der CPU und Speicherplatz auf der GPU. Die Parameter GL T EXT URE W RAP S und GL T EXT URE W RAP T der Textur werden dazu auf GL REP EAT gesetzt. Bei Indizierung der Textur wird so nur der Nachkommateil beachtet und die Textur wiederholt sich jeweils mit Änderung der Ganzzahl. Während der Strahleninitialisierung wird nach diesem Schema jedem Strahl ein Offset aus der Textur zugewiesen.

31 4.5. Implementierung 25 1 // get g r a d i e n t s 2 // approximation by s o b e l f i l t e r 3 g r a d i e n t s = g e t G r a d i e n t s ( datavolume ) ; 4 5 // compute homogeneous volume, i n d i c a t e s homogeneous b l o c k s 6 homogenvolume = new Volume ( datavolume. dimension impvolratio ) ; 7 f o r e a c h ( v o x e l i n homogenvolume ) 8 { 9 correspondentvoxel = getcorrespondentvoxel ( g r a d i e n t s, v o x e l ) ; 10 maxvalue = max( correspondentvoxel ) ; 11 i f ( maxvalue < t h r e s h o l d ) v o x e l. value = 1 ; 12 e l s e v o x e l. value = 0 ; 13 } // compute importance volume 16 importancevolume = new Volume ( datavolume. dimension impvolratio ) ; 17 f o r e a c h ( v o x e l i n importancevolume ) 18 { // i f block i s heterogeneous, 21 // s e t sampling d i s t a n c e to 0. 5 ( nyquist f r e q u e n c y ) 22 i f ( homogenvolume [ v o x e l. index ] == 0) v o x e l. value = 0. 5 ; // e l s e f i n d n e a r e s t h e t e r o g e n e o u s block, 25 // s e t sampling d i s t a n c e a c c o r d i n g l y 26 e l s e v o x e l. value = getdistanceheterogeneousblock ( homogenvolume, v o x e l ) / cuberoot ( impvolratio ) / 2 ; 27 } Listing 4.2: Berechnung des Importance Volumes in Pseudocode Fragment Shader Die in den vorherigen drei Abschnitten vorgestellten Datenstrukturen werden in Texturen auf die GPU geladen. Der Fragment Shader (s. Listing 4.3) indiziert diese Texturen zur Bestimmung der jeweils benötigten Werte. Dieser Shader ist der Kern des Ray Castings und basiert auf dem in Abschnitt 2.4 vorgestellten Algorithmus. Zur Traversierung eines Strahls sind drei Basisgrößen essenziell: Sein Startpunkt im Volumen start pos, seine Richtung dir vec und seine bisher auf dem Strahl zurückgelegte Strecke ray pos. Der Startpunkt addiert zu dem Produkt der Richtung und der zurückgelegten Strecke ergibt die Position des aktuellen Samplingpunkts sample pos (s. Listing 4.3, Zeile 25). Nachdem die drei Werte initialisiert sind, beginnt die Strahlentraversierung (s. Listing 4.3, Zeile 32-63). Zunächst wird die lokale Samplingdistanz für Adaptive Sampling erhoben (s. Listing 4.3, Zeile 35). Dies erfolgt durch einen Lookup in die Importance Volume Textur impvol tex an der aktuellen Samplingposition sample pos. Mit bekannter Entfernung kann anschließend die Position des nächsten Punkts berechnet werden und durch Indizierung des Datenvolumens mit diesen Koordinaten wird sein Dichtewert geholt. Es folgt die Pre-Integrated Classification. Mit dem Dichtewert des momentanen Punkts und dem Dichtewert des vorherigen Samplingpunkts wird die Pre-Integration Textur indiziert (s. Listing 4.3, Zeile 45f.) und somit der vorberechnete RGBA-Wert für diese Strecke bestimmt. Trotz variierender Samplingdistanz wird bei dieser Implementierung eine zweidimensionale Lookup-Textur verwendet. Die Entfernung wird im anschließenden Compositing rausgerechnet (s. Listing 4.3, Zeile 52). In ersten Tests hat sich gezeigt, dass dies die Performance des Shaders nicht merkbar beeinflusst. Die Reduzierung des Rechenaufwands beim Erstellen der Pre-Integration Tabelle ist allerdings enorm (von O(n 3 ) auf O(n 2 )). Nachdem die Werte mit denjenigen

32 26 4. Artefaktreduktion der vorangegangenen Abschnitte per Front-to-Back Compositing (s. Gleichungen 2.4) kombiniert wurden, folgen zwei Tests, ob die Strahlentraversierung abgebrochen werden kann. Dies ist der Fall, wenn das Volumen bereits verlassen wurde oder der akkumulierte Alpha-Wert einen definierten Schwellwert überschritten hat und nachfolgende Bereiche somit ohnehin verdeckt werden (Early Ray Termination). War einer dieser Tests positiv, wird der RGBA-Wert für das aktuelle Fragment gesetzt. Für Interleaved Sampling wird im Shader die initiale Strahlenposition ray pos (s. Listing 4.3, Zeile 22) durch einen Lookup in die erstellte 32 x 32 Random Textur bestimmt. Indiziert wird sie mit den Koordinaten des Fragments zum jeweiligen Strahl geteilt durch die Dimension der Zufallstextur (32, 32) [EHKRS + 06]. Weiterhin unterscheidet sich der Shader zu dem in Listing 4.3 dargestellten durch die Verwendung einer festen Samplingdistanz. Der Importance Volume Lookup (s. Listing 4.3, Zeile 35) entfällt somit.

33 4.5. Implementierung 27 1 uniform sampler3d volume tex ; // Data Volume 2 uniform sampler2d f f t e x ; // Front Face 3 uniform sampler2d b f t e x ; // Back Face 4 uniform sampler3d impvol tex ; // Importance Volume 5 uniform sampler2d p r e i n t t e x ; // Pre I n t e g r a t i o n Table 6 uniform vec2 s c r e e n r e s o l u t i o n ; 7 8 void main ( ) 9 { 10 // ray setup 11 vec2 s c r e e n p o s = gl FragCoord. xy / s c r e e n r e s o l u t i o n ; 12 vec4 s t a r t p o s = texture2d ( f f t e x, s c r e e n p o s ) ; 13 vec4 b f v e c = texture2d ( b f t e x, s c r e e n p o s ) ; 14 vec3 d i r v e c = b f v e c. xyz s t a r t p o s. xyz ; 15 f l o a t r a y l e n g t h = l e n g t h ( d i r v e c ) ; 16 d i r v e c = n o r malize ( d i r v e c ) ; // c o l o r being accumulated during ray t r a v e r s a l 19 vec4 accum color = vec4 ( 0. 0, 0. 0, 0. 0, 0. 0 ) ; // d i s t a n c e ray has covered yet 22 f l o a t r a y p o s = 0. 0 ; // p o s i t i o n o f c u r r e n t sample 25 vec3 sample pos = s t a r t p o s. xyz + d i r v e c. xyz r a y p o s ; // d e n s i t y value o f p r e v i o u s sample, i n i t with f i r s t sample 28 f l o a t d e n s i t y p r e v = texture3d ( volume tex, sample pos ). x ; // ray t r a v e r s a l 31 // number has to be l a r g e enough to t r a v e r s e whole volume 32 f o r ( i n t i = 0 ; i < ; i ++) 33 { 34 // get l o c a l sampling d i s t a n c e from importance volume 35 f l o a t s a m p l i n g d i s t = texture3d ( impvol tex, sample pos ). x ; // compute sample p o s i t i o n 38 r a y p o s += s a m p l i n g d i s t ; 39 sample pos = s t a r t p o s. xyz + d i r v e c. xyz r a y p o s ; // get d e n s i t y value 42 f l o a t d e n s i t y = texture3d ( volume tex, sample pos ). x ; // get c o l o r from pre i n t e g r a t i o n t a b l e 45 vec2 p r e i n t p o s = vec2 ( d e n s i t y p r e v, d e n s i t y ) ; 46 vec4 t f c o l o r = texture2d ( p r e i n t t e x, p r e i n t p o s ) ; // save c u r r e n t d e n s i t y value 49 d e n s i t y p r e v = d e n s i t y ; // compositing 52 accum color += (1.0 accum color. a ) t f c o l o r s a m p l i n g d i s t ; // volume l e f t? 55 i f ( r a y p o s > r a y l e n g t h ) break ; // e a r l y ray t e r m i n a t i o n 58 i f ( accum color. a > 1. 0 ) break ; 59 } // r e s u l t o f volume r e n d e r i n g i n t e g r a l f o r c u r r e n t fragment 62 g l F r a g C o l o r. rgba = accum color ; 63 } Listing 4.3: GLSL Fragment Shader für Adaptive Pre-Integration

34

35 5. Evaluierung 5.1 Qualitätsmerkmale Zur Evaluierung der implementierten Techniken und zur Bestimmung der erreichten Qualitätssteigerung werden für jede Technik Bilder von geeigneten Datensätzen betrachtet. Dabei werden Bilder, die ohne den Einsatz der jeweiligen Technik entstanden sind, mit solchen verglichen, bei denen die Technik Verwendung fand. Entscheidendes Merkmal ist die Reduzierung sichtbarer Artefakte bei Verwendung derselben Transferfunktion und unter Erreichung vergleichbarer Bildfrequenzen. Die Bildraten variieren je nach Perspektive deutlich, deshalb handelt es sich bei allen Angaben um gemittelte Werte. Die Bildebene wurde für alle Messungen auf 512 x 512 Pixel festgelegt. Alle Performancemessungen wurden auf folgender Hardware ausgeführt: Intel Core 2 Duo 3.0GHz CPU und einer NVIDIA GeForce 8800GT Grafikkarte mit 1024 MB Speicher. Es werden zwei Datensätze verwendet, die häufig als Beispiele im Bereich der Volumengrafik herangezogen werden. So ist eine Vergleichbarkeit auch über die Grenzen dieser Arbeit hinweg möglich. Der erste Datensatz ist das Ergebnis einer Computertomographie eines menschlichen Kopfs. Er umfasst 256 x 256 x 225 Voxel, wobei jeder Skalar eine Genauigkeit von einem Byte hat und damit 256 verschiedene Werte annehmen kann. Somit ergibt sich eine Größe von Kilobyte. Der zweite Datensatz ist ein Motorblock. Dieser ist ebenfalls ein Byte-Datensatz und hat eine Ausdehnung von 256 x 256 x 128 Voxeln und ist somit Kilobyte groß. Es ist also bei beiden Datensätzen garantiert, dass der Grafikspeicher nicht zum limitierenden Faktor wird.

36 30 5. Evaluierung 5.2 Pre-Integration Das Ziel der Pre-Integration ist die Abbildung hochfrequenter Transferfunktionen, ohne die nötige Verwendung von extrem hohen Samplingfrequenzen, die eine Interaktion mit dem Volumen in Echtzeit nahezu unmöglich machen. Vor diesem Hintergrund werden die Ergebnisse der wie in Abschnitt 4.5 implementierten Technik betrachtet. Wie in Abschnitt 3.1 beschrieben, ist die Nyquist-Frequenz in Bezug auf die Volumendaten gleich ein halb. Es müssen zur Vermeidung von Artefakten also auf jedem Strahl zwei Samples je Voxel erhoben werden. Die Transferfunktion kann jedoch zusätzlich hohe Frequenzen einbringen (s. Abbildung 5.1e), wodurch sich die Anzahl an notwendigen Samples erhöht. Werden weiterhin nur zwei Samples je Voxel erhoben, bilden sich bei Verwendung der Post-Classification erste Artefakte (s. Abbildung 5.1a). Im Vergleich dazu genügen diese zwei Samples bei verwendeter Pre-Integration (s. Abbildung 5.1b). Es sind kaum noch Artefakte zu erkennen. Die in der Theorie gestellten Erwartungen wurden somit erfüllt. Wird die Samplingfrequenz unter die nach dem Nyquist-Shannon Theorem festgelegt Grenze verringert, sind mit Post-Classification deutlich Artefakte sichtbar (s. Abbildung 5.1c). Doch auch in diesem Fall wird durch die Pre-Integration eine sichtlich bessere Bildqualität erreicht (s. Abbildung 5.1d). Zwar sind nun auch hier erste Artefakte zu erkennen, mit Hilfe der Pre-Integration scheint die Empfindlichkeit für Undersampling jedoch deutlich abzunehmen. Bei Datensätzen ab einer bestimmten Größe kann ein Sampling mit Nyquist-Frequenz nicht mehr zu interaktiven Bildfrequenzen führen. Hier lässt sich dank Pre-Integration die Anzahl der Samplingpunkte reduzieren, so dass Interaktivität möglich wird und die Anzahl entstehender Artefakte minimal bleibt. Bei glatten Transferfunktionen (s. Abbildung 5.2c) reichen auch bei Verwendung von Post-Classification zwei Samples pro Voxel (s. Abbildung 5.2a), Pre-Integration führt in diesem Fall zu keiner Verbesserung der Bildqualität (s. Abbildung 5.2b). Der Vorteil bei abnehmender Samplingfrequenz bleibt jedoch erhalten, so dass auch bei glatten Transferfunktionen Pre-Integration sinnvoll ist. Die Performance des Fragment Shaders ist bei beiden Varianten nahezu identisch (s. Tabelle 5.1), da bei der Pre-Integration lediglich der Lookup in die eindimensionale Transferfunktion durch einen Lookup in die zweidimensionale Pre-Integration Tabelle ersetzt wird. In Anbetracht dieser Ergebnisse erscheint es sinnvoll den Einsatz der Pre-Integrated Classification in jedem Fall dem der Post-Classification vorzuziehen. Datensatz max #Samples Technik FPS Kopf 256 Post-Class. ca. 60 Kopf 256 Pre-Int. ca. 60 Kopf 512 Post-Class. ca. 30 Kopf 512 Pre-Int. ca. 30 Tabelle 5.1: Vergleich der Bildraten von Post-Classification und Pre-Integration

37 5.2. Pre-Integration 31 (a) 2 Samples pro Voxel, Post-Classification (b) 2 Samples pro Voxel, Pre-Integration (c) 1 Sample pro Voxel, Post-Classification (d) 1 Sample pro Voxel, Pre-Integration (e) verwendete Transferfunktion Abbildung 5.1: Bei einer hochfrequenten Transferfunktion bilden sich mit Post-Classification selbst bei zwei Samples pro Voxel und Strahl (Nyquist-Frequenz bezogen auf die Volumendaten) Artefakte (a). Mit Pre-Integration ist diese Samplingfrequenz ausreichend (b). Wird die Samplingfrequenz verringert, sind mit Post-Classification deutlich Artefakte zu erkennen (c). Pre-Integration ist weniger anfa llig gegen Undersampling, obgleich auch hier erste Artefakte auftreten (d). Die verwendete Transferfunktion ist zeigt (e).

38 32 5. Evaluierung (a) 2 Samples pro Voxel, Post-Classification (b) 2 Samples pro Voxel, Pre-Integration (c) verwendete Transferfunktion Abbildung 5.2: Bei einer glatten Transferfunktion sind mit Post-Classification zwei Samples pro Voxel und Strahl ausreichend (a). Pre-Integration bringt hier keine sichtbaren Vorteile (b). In (c) ist die verwendete Transferfunktion zu sehen. 5.3 Adaptive Sampling In einem typischen Volumen sind in großer Zahl Bereiche vorhanden, in denen die Daten nur minimal variieren. In solchen homogenen Blo cken kann die Samplingfrequenz reduziert werden, um sie in detailreichen Bereichen zu erho hen. Bei insgesamt gleicher Anzahl an Samples und damit a hnlicher Geschwindigkeit ko nnen somit im Vergleich zu einer konstanten Samplingfrequenz Artefakte vermieden werden (s. Abschnitt 4.3). Der mit Adaptive Sampling gerenderte Motorblock ist in Abbildung 5.3 zu sehen. Wie erwartet, konnte die Anzahl an Samples deutlich reduziert werden (s. Abbildung 5.4). In homogenen Bereichen wurden weitaus weniger Samples genommen (Dunkelblau) als in heterogenen Bereichen (Rot). In Abbildung 5.5a wird noch einmal anschaulich, wie die Anzahl der Samples auf den verschiedenen Strahlen variieren kann. Pro Sample nimmt die Opazita t des Bildpunkts zu. Je mehr heterogene Bereiche ein Strahl durchquert, desto dunkler wird bei dieser Darstellung das korrespondierende Fragment. Im Extremfall ist beispielsweise in den leeren Randbereichen nur ein einziger Samplingpunkt pro Strahl no tig. Wird zusa tzlich Early Ray Termination verwendet, sinkt die Anzahl no tiger Samples weiter (s. Abbildung 5.5b). Ein Schnitt durch das Homogenita tsvolumen (s. Abbildung 5.5c) la sst erkennen, dass viele Bereiche homogen sind (weiß) und somit mit wenigen Samples ada quat abgebildet werden ko nnen. Ein Schnitt durch das Importance Volume (s. Abbildung 5.5d) zeigt entsprechend die lokale Samplingdistanz, die mit zunehmendem Abstand zu heterogenen Bereichen wa chst (heller).

39 5.3. Adaptive Sampling 33 Dennoch konnte bei den Messungen der Bildraten kein signifikanter Unterschied zwischen konstanter und adaptiver Schrittweite festgestellt werden (s. Tabelle 5.2). Eine mo gliche Ursache ko nnte darin liegen, dass immer ein Block von mehreren Strahlen zeitgleich auf der GPU traversiert wird. Erst wenn alle Strahlen abgearbeitet wurden, wird der na chste Block in Angriff genommen. Somit ha ngt die erzielte Geschwindigkeit je Block immer von dem Strahl ab, dessen Traversierung am meisten Zeit in Anspruch nimmt. Um mit Adaptive Sampling das Ziel zu erreichen, bei a hnlichen Bildraten eine bessere Qualita t als mit konstanten Schrittweiten zu erreichen, muss evaluiert werden, warum bei der in dieser Arbeit implementierten Variante trotz insgesamt sinkender Anzahl an Samples kein Geschwindigkeitszuwachs verzeichnet werden konnte. Des Weiteren ha ngt der Erfolg der Methode auch von den jeweiligen Daten ab. So gibt es Volumina, die eine geringe Menge an homogenen Bereichen aufweisen. In diesen Fa llen kann die Anzahl an Samplingschritten nicht besonders verringert werden. Datensatz Motor Motor max #Samples Schrittweite konstant adaptiv FPS ca ca Tabelle 5.2: Vergleich der Bildraten von Sampling mit konstanter Schrittweite und Adaptive Sampling Abbildung 5.3: Der mit Adaptive Sampling gerenderte Motorblock. (a) Anzahl Samples mit AS (b) Anzahl Samples mit AS und ERT (c) verwendete TF Abbildung 5.4: In (a) ist die Anzahl an Samples pro Strahl zu sehen. Dunkelblau markiert eine sehr geringe Anzahl und Rot eine sehr hohe Anzahl an Samples. In (b) ist zusa tzlich Early Ray Termination aktiv. Die verwendete Transferfunktion (TF) ist in (c) abgebildet.

40 34 5. Evaluierung 5.4 Interleaved Sampling Für den Betrachter besonders störende Wood-grain Artefakte zu verstecken ist das Ziel von Interleaved Sampling (s. Abschnitt 4.4). Tatsächlich verschwinden die in Abbildung 5.6a vorhandenen Artefakte weitgehend durch die wie in 4.5 implementierte Methode. Anstelle der auffälligen Artefakte ist ein gleichmäßiges Rauschen getreten (s. Abbildung 5.6b). Dieses ist weit weniger irritierend und lenkt somit nicht von wichtigen Details ab. Mit steigender Samplingfrequenz nehmen die sichtbaren Artefakte ab (s. Abbildung 5.6c). Der Vorteil von Interleaved Sampling sinkt somit (s. Abbildung 5.6d). Bei einer Samplingrate von zwei Samples pro Voxel und Strahl ist kaum noch ein Unterschied auszumachen (s. Abbildungen 5.6e und 5.6f). Beachtenswert ist dabei, dass Interleaved Sampling in diesem Fall zwar keinen sichtbaren Vorteil bringt, aber auch keinen sichtbaren Nachteil. Die Laufzeit der Bildgenerierung unterscheidet sich mit aktiviertem Interleaved Sampling nicht messbar von der Laufzeit, die ohne diese Technik erzielt wird (s. Tabelle 5.3). Angesichts dessen, dass der Shader nur durch einen Textur Lookup erweitert wurde, war dieses Ergebnis zu erwarten. Interleaved Sampling ist dennoch nicht in jedem Fall von Vorteil. So kann es passieren, dass zuvor artefaktfreie Bereiche (s. Abbildungen 5.7a und 5.7c) durch den Strahlenversatz nun auch verrauscht sind (s. Abbildungen 5.7b und 5.7d). Dies ist der Fall, wenn einige Samplingpunkte jetzt nicht mehr auf einen weitgehend opaken Bereich fallen, sondern auf Bereiche davor oder dahinter. Bei den meisten Volumina gibt es Teilbereiche, bei denen Interleaved Sampling Vorteile bringt und welche, bei denen es von Nachteil ist. Es empfiehlt sich daher eine Implementierung, bei der der Nutzer je nach Bedarf und momentan betrachtetem Ausschnitt Interleaved Sampling ein- und ausschalten kann. Datensatz max #Samples FPS ohne IS FPS mit IS Motor 128 ca. 60 ca. 60 Motor 256 ca. 40 ca. 40 Motor 512 ca. 30 ca. 30 Tabelle 5.3: Vergleich der Bildraten mit/ohne Interleaved Sampling (IS)

41 5.4. Interleaved Sampling 35 (a) Samplingdichte mit AS (b) Samplingdichte mit AS und ERT (c) Schnitt durch Homogenitätsvolumen (d) Schnitt durch Importance Volume Abbildung 5.5: (a) zeigt die Samplingdichte je Strahl mit Adaptive Sampling (AS). Durchquert ein Strahl viele heterogene Bereiche, so müssen auf seiner Strecke mehr Samples erfasst werden (dunkel), als auf einem Strahl, der hauptsächlich homogene Bereiche durchquert (hell). Bei (b) ist zusätzlich Early Ray Termination (ERT) aktiv. Hat die entlang eines Strahls akkumulierte Opazität 100 Prozent erreicht, wird die Traversierung abgebrochen und so die Anzahl an Samplingschritten reduziert. (c) zeigt einen Schnitt durch das Homogenitätsvolumen, welches im Verhältnis 1:8 zum Datenvolumen aufgebaut wurde. Homogene Bereiche sind weiß, heterogene sind schwarz dargestellt. In (d) ist ein Schnitt durch das Importance Volume zu sehen (Verhältnis zum Datenvolumen: 1:8). Je heller ein Punkt ist, desto größer ist die lokale Samplingdistanz.

42 36 5. Evaluierung (a) 1/2 Sample pro Voxel, ohne IS (b) 1/2 Sample pro Voxel, mit IS (c) 1 Sample pro Voxel, ohne IS (d) 1 Sample pro Voxel, mit IS (e) 2 Samples pro Voxel, ohne IS (f ) 2 Samples pro Voxel, mit IS Abbildung 5.6: Besonders bei niedrigen Samplingraten entstehen sto rende Wood-grain Artefakte (a). Interleaved Sampling (IS) ersetzt diese Fehler durch ein weniger auffallendes Rauschen (b). Mit steigender Samplingfrequenz nehmen die Artefakte ab (c), so dass der Vorteil von Interleaved Sampling sinkt (d). Bei 2 Samples pro Voxel und Strahl ist kaum noch ein Unterschied auszumachen (e, f ) Interleaved Sampling bringt in diesem Fall weder einen sichtbaren Vorteil noch einen sichtbaren Nachteil.

43 5.4. Interleaved Sampling 37 (a) ohne IS (b) mit IS (c) ohne IS (d) mit IS Abbildung 5.7: Interleaved Sampling (IS) kann auch Quelle fu r zusa tzliche Artefakte sein. Ohne Interleaved Sampling erfassen die meisten Strahlen die du nne Schicht an der Seite des Motorblocks mit Samplingpunkten. Die Oberfla che wird daher u berwiegend korrekt dargestellt (jeweils links). Wird Interleaved Sampling genutzt, wird diese Schicht auf vielen Strahlen nicht mehr gesampelt und Rauschen entsteht (jeweils rechts).

Visualisierung und Volumenrendering 2

Visualisierung und Volumenrendering 2 Institut für Computervisualistik Universität Koblenz 06.07.2012 Inhaltsverzeichnis 1 Literatur 2 Wiederholung 3 DVR Volumen Literatur Real-Time Volume Graphics Volumenrendering CG Shader Beispiele Volumen

Mehr

Volumen Visualisierung

Volumen Visualisierung Volumen Visualisierung Seminar Interaktive Visualisierung (WS 06/07) Fabian Spiegel und Christian Meß Fabian Spiegel und Christian Meß 1 Übersicht Anwendungsbeispiele Volumendaten Entstehung Repräsentation

Mehr

Texture Based Direct Volume Rendering

Texture Based Direct Volume Rendering Texture Based Direct Volume Rendering Vorlesung: "Advanced Topics in Computer Graphics" cbrak@upb.de 1 Agenda 1. Einleitung Volume Rendering 1.1. Volumendatensatz 1.2. Volumenintegral 1.3. Image order

Mehr

Volumenverarbeitung und Optimierung II

Volumenverarbeitung und Optimierung II Volumenverarbeitung und Optimierung II Praktikum Medizinische GPU Verfahren Susanne Fischer sanne@uni-koblenz.de Institut für Computervisualistik Universität Koblenz-Landau 9. Dezember 2006 Susanne Fischer

Mehr

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden 3D - Modellierung Arne Theß Proseminar Computergraphik TU Dresden Gliederung Darstellungsschemata direkte Constructive Solid Geometry (CSG) Generative Modellierung Voxelgitter indirekte Drahtgittermodell

Mehr

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten

Mehr

Übungsstunde 8 zu Computergrafik 1

Übungsstunde 8 zu Computergrafik 1 Institut für Computervisualistik Universität Koblenz 14. und 15. Januar 2013 Inhaltsverzeichnis 1 Wiederholung - Beleuchtung Gouraud-Shading Phong-Shading Flat-Shading Vergleich 2 - Idee in OpenGL Texturfilterung

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

4.4 Glättung von Kanten

4.4 Glättung von Kanten 4.4 Glättung von Kanten Es wurden verschiedene Aspekte zur Beleuchtung von Modellen und Szenen vorgestellt. Es gibt zwei Arten von Licht, das Hintergrundlicht und Licht von Lichtquellen, wobei hier zu

Mehr

WS 2014/15 FINITE-ELEMENT-METHODE JUN.-PROF. D. JUHRE

WS 2014/15 FINITE-ELEMENT-METHODE JUN.-PROF. D. JUHRE Eigenschaften Der wesentliche Nachteil neunknotiger biquadratischer Lagrange Elemente ist die gegenüber dem bilinearen Element erhöhte Anzahl von Elementfreiheitsgraden. Insbesondere die beiden Freiheitsgrade

Mehr

Kapitel 4: Schattenberechnung

Kapitel 4: Schattenberechnung Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler

Mehr

GPU-basiertes Volumenrendering von multimodalen medizinischen Bilddaten in Echtzeit

GPU-basiertes Volumenrendering von multimodalen medizinischen Bilddaten in Echtzeit GPU-basiertes Volumenrendering von multimodalen medizinischen Bilddaten in Echtzeit Ingrid Scholl 1, Nicole Schubert 1, Pascal Ziener 1, Uwe Pietrzyk 2 1 Fachbereich für Elektrotechnik und Informationstechnik,

Mehr

Marching Cubes - Erstellung von Polygonmodellen aus Voxelgittern

Marching Cubes - Erstellung von Polygonmodellen aus Voxelgittern Marching Cubes - Erstellung von Polygonmodellen aus Voxelgittern Matthias Kirschner Advanced Topics in Computer Graphics - WS06/07 Marching Cubes - Erstellung von Polygonmodellen aus Voxelgittern Matthias

Mehr

Shader. Computer Graphics: Shader

Shader. Computer Graphics: Shader Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger

Mehr

Volumenakquise. Vortrag von Benjamin Gayer

Volumenakquise. Vortrag von Benjamin Gayer 10.11.11 1 Volumenakquise Vortrag von Benjamin Gayer Einführung Bildquelle: http://www.medical.siemens.com/siemens/de_de/rg_marcom_fbas/files/patienteninformationen/ct_geschichte_technologie. pdf 10.11.11

Mehr

2. Digitale Codierung und Übertragung

2. Digitale Codierung und Übertragung 2. Digitale Codierung und Übertragung 2.1 Informationstheoretische Grundlagen 2.2 Speicherbedarf und Kompression 2.3 Digitalisierung Ludwig-Maximilians-Universität München Prof. Hußmann Digitale Medien

Mehr

Christina Nell. 3D-Computergrafik

Christina Nell. 3D-Computergrafik Christina Nell 3D-Computergrafik Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52 Inhalt Beleuchtung Shading Texturierung Texturfilterung

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Antialiasing Graphische DV und BV, Regina Pohle, 5. Antialiasing 1 Einordnung in die Inhalte der Vorlesung Einführung mathematische

Mehr

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Universität Trier Fachbereich IV Wintersemester 2004/2005 Wavelets made easy Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Thomas Queckbörner 16.11.2004 Übersicht des Kapitels: 1. Einführung 2. Zweidimensionale

Mehr

Digitale Medien. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid. Übung zur Vorlesung

Digitale Medien. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid. Übung zur Vorlesung Übung zur Vorlesung Digitale Medien Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid Wintersemester 2016/17 LZW-Komprimierung Idee: Nicht einzelne Zeichen werden günstig kodiert, sondern ganze Zeichenketten

Mehr

Visualisierung und Volumenrendering I

Visualisierung und Volumenrendering I Institut für Computervisualistik Universität Koblenz 05.07.2012 Inhaltsverzeichnis 1 Motivation 2 Volumendaten 3 Pipeline 4 Transferfunktionen 5 Gradienten 6 Volumenvisualisierung 7 IVR 8 DVR Wissenschaftliche

Mehr

Beleuchtung. in Computerspielen

Beleuchtung. in Computerspielen Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung

Mehr

4. Segmentierung von Objekten Video - Inhaltsanalyse

4. Segmentierung von Objekten Video - Inhaltsanalyse 4. Segmentierung von Objekten Video - Inhaltsanalyse Stephan Kopf Inhalt Vorgehensweise Berechnung der Kamerabewegungen zwischen beliebigen Bildern Transformation eines Bildes Hintergrundbilder / Panoramabilder

Mehr

Rendering: Lighting and Shading

Rendering: Lighting and Shading Rendering: Lighting and Shading Hauptseminar: How to make a Pixar Movie Inhalt Einführung Was ist Rendering Was ist Reflexionsmodelle Lighting Shading Globale Beleuchtungsmodelle Zusammenfassung 2/53 Inhalt

Mehr

Analyse Kryptographischer Algorithmen: KRYPTON & TWOFISH

Analyse Kryptographischer Algorithmen: KRYPTON & TWOFISH Analyse Kryptographischer Algorithmen: KRYPTON & TWOFISH Martin Lötzsch loetzsch@informatik.hu-berlin.de Einleitung. Das Seminar Analyse Kryptographischer Algorithmen beschäftigte sich mit interessanten,

Mehr

Digitalisierung und Kodierung

Digitalisierung und Kodierung Digitalisierung und Kodierung Digitale Medien liegen in digitaler Form vor Deshalb werden analoge Medien digitalisiert und geeignet kodiert Ziel der Digitalisierung: effiziente Berechnung wenig Verluste

Mehr

Lokale Beleuchtungsmodelle

Lokale Beleuchtungsmodelle Lokale Beleuchtungsmodelle Proseminar GDV, SS 05 Alexander Gitter Betreuer: Dirk Staneker Wilhelm-Schickard-Institut für Informatik Graphisch-Interaktive Systeme Sand 14 D-72076 Tübingen Einleitung und

Mehr

Interaktive Visualisierung zeitabhängiger Volumendaten

Interaktive Visualisierung zeitabhängiger Volumendaten Interaktive Visualisierung zeitabhängiger Volumendaten Diplomarbeit von Dario Kardas graphische datenverarbeitung, universität erlangen-nürnberg Skalare Volumendaten Volumen besteht aus Schichtbildern

Mehr

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU (7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

15 Grundlagen der Simulation

15 Grundlagen der Simulation 15 Grundlagen der Simulation 15.1 Einführung Komplexe Problemstellungen, die einer analytischen Behandlung nur sehr schwer oder gar nicht zugänglich sind Lösung von diskreten (oder analytischen) Optimierungsaufgaben,

Mehr

Entwicklung eines hardwarebeschleunigten direkten Volumenvisualisierers für große Datensätze

Entwicklung eines hardwarebeschleunigten direkten Volumenvisualisierers für große Datensätze Entwicklung eines hardwarebeschleunigten direkten Volumenvisualisierers für große Datensätze Joachim Staib Nach: GigaVoxels: Ray-Guided Streaming for Efficient and Detailed Voxel Rendering Cyrill Crassin,

Mehr

EINLEITUNG MAGNETSCHWEBETECHNIK

EINLEITUNG MAGNETSCHWEBETECHNIK EINLEITUNG Magnetschwebebahnen sind Transportmittel der Zukunft. Hohe Beschleunigungen und Geschwindigkeiten bedeuten eine Verbesserung der Mobilität im Transportwesen. Die Probleme dieser noch jungen

Mehr

Einführung. Ablesen von einander zugeordneten Werten

Einführung. Ablesen von einander zugeordneten Werten Einführung Zusammenhänge zwischen Größen wie Temperatur, Geschwindigkeit, Lautstärke, Fahrstrecke, Preis, Einkommen, Steuer etc. werden mit beschrieben. Eine Zuordnung f, die jedem x A genau ein y B zuweist,

Mehr

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER Michael Bender Martin Brill Computergrafik Ein anwendungsorientiertes Lehrbuch 2., überarbeitete Auflage HANSER Inhaltsverzeichnis Vorwort XI 1 Einleitung 1 1.1 Die Entwicklung der Computergrafik 1 1.2

Mehr

Die Interpretation Optischer Leistungsdaten

Die Interpretation Optischer Leistungsdaten Die Interpretation Optischer Leistungsdaten Einige Fakten über die Carl Zeiss AG Seit 1896 berühmt für Kamera-Objektive Zeiss 1846 von Carl Zeiss gegründet 48 Produktionsstandorte weltweit Die ersten Kamerabilder

Mehr

Aufgabe 1 - Tricks mit linearen Gleichungen

Aufgabe 1 - Tricks mit linearen Gleichungen Institut für Informatik Visual Computing Prof. Dr. Michael Wand & M.Sc. Sebastian Brodehl Sommersemester 2018 Modellierung I Übungsblatt 4: LGS, Vektorräume und Inverse Probleme Letzte Änderung: 10:20

Mehr

Lösungsblatt 2 Signalverarbeitung und Klassifikation

Lösungsblatt 2 Signalverarbeitung und Klassifikation Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 06 M. Sperber (matthias.sperber@kit.edu) S. Nguyen (thai.nguyen@kit.edu) Lösungsblatt Signalverarbeitung und Klassifikation Aufgabe : Faltung

Mehr

Beschleunigungsverfahren für Raytracing Grids Hierarchische Grids Bewertung Fazit

Beschleunigungsverfahren für Raytracing Grids Hierarchische Grids Bewertung Fazit Überblick Einführung Beschleunigungsverfahren für Raytracing Grids Hierarchische Grids Fazit Einführung Gewöhnliche Beschleunigungsverfahren & Raumunterteilung entworfen und optimiert für effizientes Traversieren

Mehr

Beleuchtung Schattierung Rasterung

Beleuchtung Schattierung Rasterung Beleuchtung Schattierung Rasterung Thomas Jung t.jung@htw-berlin.de Beleuchtung, Schattierung und Rasterung in allen Echtzeit-3D-Umgebungen gleich OpenGL Direct3D 3dsmax,... Letzter Bestandteil der Grafikpipeline

Mehr

Einführung in die medizinische Bildverarbeitung WS 12/13

Einführung in die medizinische Bildverarbeitung WS 12/13 Einführung in die medizinische Bildverarbeitung WS 12/13 Stephan Gimbel Kurze Wiederholung Pipeline Pipelinestufen können sich unterscheiden, beinhalten aber i.d.r. eine Stufe zur Bildvorverarbeitung zur

Mehr

Übungsblatt 1 Geometrische und Technische Optik WS 2012/2013

Übungsblatt 1 Geometrische und Technische Optik WS 2012/2013 Übungsblatt 1 Geometrische und Technische Optik WS 2012/2013 Gegeben ist eine GRIN-Linse oder Glasaser) mit olgender Brechzahlverteilung: 2 2 n x, y, z n0 n1 x y Die Einheiten der Konstanten bzw. n 1 sind

Mehr

3.6 Eigenwerte und Eigenvektoren

3.6 Eigenwerte und Eigenvektoren 3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse

Mehr

Entwicklung einer hp-fast-multipole-

Entwicklung einer hp-fast-multipole- Entwicklung einer hp-fast-multipole- Boundary-Elemente-Methode Übersicht: 1. Motivation 2. Theoretische Grundlagen a) Boundary-Elemente-Methode b) Fast-Multipole-Methode 3. Erweiterungen a) Elementordnung

Mehr

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis Computergrafik Michael Bender, Manfred Brill Ein anwendungsorientiertes Lehrbuch ISBN 3-446-40434-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40434-1 sowie

Mehr

Digitalisierung von Tönen. Von Paul

Digitalisierung von Tönen. Von Paul Digitalisierung von Tönen Von Paul Was passiert beim hören Tonquelle erzeugt Schallwellen Alle vibrierende Objekte erzeugen Schallwellen. Durch die Vibration wird das Medium stoßweise verdichtet. Schallwellen

Mehr

Modellierung. Oliver Hartmann

Modellierung. Oliver Hartmann Modellierung Oliver Hartmann oliver.hartmann@uni-ulm.de Inhalt Boolesche Operationen Splines B-Splines Bezier-Kurven NURBS Anwendung Sculpting Volumengrafik Marching Cubes Ray Casting Texture Mapping Boolesche

Mehr

Stochastische Approximation des Value at Risk

Stochastische Approximation des Value at Risk Stochastische Approximation des Value at Risk Annemarie Bitter Motivation Eines der wichtigsten Projekte der Versicherungswirtschaft ist derzeit die sogenannte Solvency-II-Richtlinie der Versicherungsaufsicht.

Mehr

I.1.3 b. (I.7a) I.1 Grundbegriffe der Newton schen Mechanik 9

I.1.3 b. (I.7a) I.1 Grundbegriffe der Newton schen Mechanik 9 I. Grundbegriffe der Newton schen Mechanik 9 I..3 b Arbeit einer Kraft Wird die Wirkung einer Kraft über ein Zeitintervall oder genauer über die Strecke, welche das mechanische System in diesem Zeitintervall

Mehr

Seminar Ausgewählte Themen der medizinischen Visualisierung

Seminar Ausgewählte Themen der medizinischen Visualisierung 1 Ausgewählte Themen der medizinischen Visualisierung Institut für Informatik 08.07.2011 Arbeitsgruppe Visualisierung und Computergrafik (VisCG) Organisatorisches Veranstalter: Prof. Dr. Klaus Hinrichs,

Mehr

Distributed Algorithms. Image and Video Processing

Distributed Algorithms. Image and Video Processing Chapter 7 High Dynamic Range (HDR) Distributed Algorithms for Quelle: wikipedia.org 2 1 High Dynamic Range bezeichnet ein hohes Kontrastverhältnis in einem Bild Kontrastverhältnis bei digitalem Bild: 1.000:1

Mehr

Die Welt der Shader. Fortgeschrittene Techniken III

Die Welt der Shader. Fortgeschrittene Techniken III Die Welt der Shader Fortgeschrittene Techniken III Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Gliederung 1. Was ist ein Shader? 2. Verschiedene

Mehr

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Diplomarbeit 5HDO7LPH6SHFLDO (IIHFWV Neue Möglichkeiten durch programmierbare Shader Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Betreut von: Paul Grimm, Ralf Dörner Beginn: 01.04.02 Abgabe: 30.09.02

Mehr

Kollisionserkennung

Kollisionserkennung 1 Kollisionserkennung von Jens Schedel, Christoph Forman und Philipp Baumgärtel 2 1. Einleitung Wozu wird Kollisionserkennung benötigt? 3 - für Computergraphik 4 - für Simulationen 5 - für Wegeplanung

Mehr

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese Geometrisches Modell bestehend aus Datenstrukturen zur Verknüpfung geometrischer Primitive, welche eine Gesamtszene beschreiben Bildsynthese := Modellabbildung Pixelbasiertes Modell zur Darstellung eines

Mehr

Advanced Topics in Computer Graphics: Transferfunktionen

Advanced Topics in Computer Graphics: Transferfunktionen Advanced Topics in Computer Graphics: Transferfunktionen Markus Happe und Tobias Kenter Universität Paderborn Markus Happe, Tobias Kenter 09.02.2007 1 / 40 Motivation (1/2) Wie stelle ich Volumendaten

Mehr

computer graphics & visualization

computer graphics & visualization Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation

Mehr

Verwandte Begriffe Maxwell-Gleichungen, elektrisches Wirbelfeld, Magnetfeld von Spulen, magnetischer Fluss, induzierte Spannung.

Verwandte Begriffe Maxwell-Gleichungen, elektrisches Wirbelfeld, Magnetfeld von Spulen, magnetischer Fluss, induzierte Spannung. Verwandte Begriffe Maxwell-Gleichungen, elektrisches Wirbelfeld, Magnetfeld von Spulen, magnetischer Fluss, induzierte Spannung. Prinzip In einer langen Spule wird ein Magnetfeld mit variabler Frequenz

Mehr

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1):

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1): . Großübung Polynominterpolation Allgemeines Problem: Aufgrund gegebener Messwerte (Paare aus Werten i und Funktionswerten f( i )) soll ein Funktionsverlauf rekonstruiert bzw. zumeist angenähert werden.

Mehr

A2.3 Lineare Gleichungssysteme

A2.3 Lineare Gleichungssysteme A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen

Mehr

Landau-Theorie. Seminar zur Theorie der Teilchen und Felder. Daniel Schröer

Landau-Theorie. Seminar zur Theorie der Teilchen und Felder. Daniel Schröer Landau-Theorie Seminar zur Theorie der Teilchen und Felder Daniel Schröer 1.Einleitung Um ein Problem der Statistischen Physik zu lösen, wird ein relevantes thermodynamisches Potential, wie beispielsweise

Mehr

Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth

Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth Lineare Algebra Mathematik II für Chemiker Daniel Gerth Überblick Lineare Algebra Dieses Kapitel erklärt: Was man unter Vektoren versteht Wie man einfache geometrische Sachverhalte beschreibt Was man unter

Mehr

Volume Rendering & Transferfunktionen

Volume Rendering & Transferfunktionen Kardiologie Von der Bildgebung zur Diagnose Volume Rendering & Transferfunktionen 21.12.2007 Elmar Brendel TU Darmstadt Graphisch-Interaktive Systeme Inhalt [1] Volume Rendering 1.1 Übersicht über die

Mehr

Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie. Sommersemester Franz Pauer

Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie. Sommersemester Franz Pauer Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie Sommersemester 2009 Franz Pauer INSTITUT FÜR MATHEMATIK, UNIVERSITÄT INNSBRUCK, TECHNIKERSTRASSE 13, 6020

Mehr

Conservative Volumetric Visibility with Occluder Fusion

Conservative Volumetric Visibility with Occluder Fusion Conservative Volumetric Visibility with Occluder Fusion Worum geht es? Ausgangspunkt komplexe Szene, wie Städte, Straßenzüge, etc. Ziel effiziente Berechnung von nicht sichtbaren Regionen Begriffe / Definitionen

Mehr

Matthias Treydte Fakultät für Informatik TU Chemnitz

Matthias Treydte Fakultät für Informatik TU Chemnitz Einführung MRM / LOD Matthias Treydte Fakultät für Informatik TU Chemnitz Übersicht 1. 2. 3. 4. 5. 6. 7. Wozu das Ganze? Wie kann man Polygonzüge vereinfachen? Wie sind Vereinfachungen zu bewerten? Welche

Mehr

Übungen mit dem Applet Kurven in Parameterform

Übungen mit dem Applet Kurven in Parameterform Kurven in Parameterform 1 Übungen mit dem Applet Kurven in Parameterform 1 Ziele des Applets... Wie entsteht eine Kurve in Parameterform?... 3 Kurvenverlauf für ausgewählte x(t) und y(t)... 3 3.1 x(t)

Mehr

Mathematischer Vorkurs für Physiker WS 2012/13 Vorlesung 7

Mathematischer Vorkurs für Physiker WS 2012/13 Vorlesung 7 TU München Prof. P. Vogl Mathematischer Vorkurs für Physiker WS 2012/13 Vorlesung 7 Definition: Ein Skalarfeld ordnet jedem Punkt im dreidimensionalen Raum R 3 eine ahl () zu. Unter einem räumlichen Vektorfeld

Mehr

Stochastische Approximation des Value at Risk

Stochastische Approximation des Value at Risk Stochastische Approximation des Value at Risk Zusammenfassung der Masterarbeit an der Universität Ulm Annemarie Bitter Motivation Eines der wichtigsten Projekte der Versicherungswirtschaft ist derzeit

Mehr

6. Vorlesung. Rechnen mit Matrizen.

6. Vorlesung. Rechnen mit Matrizen. 6. Vorlesung. Rechnen mit Matrizen. In dieser Vorlesung betrachten wir lineare Gleichungs System. Wir betrachten lineare Gleichungs Systeme wieder von zwei Gesichtspunkten her: dem angewandten Gesichtspunkt

Mehr

Computergrafik 1 Beleuchtung

Computergrafik 1 Beleuchtung Computergrafik 1 Beleuchtung Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Lokale Beleuchtungsmodelle Ambiente Beleuchtung Diffuse Beleuchtung (Lambert) Spiegelnde Beleuchtung

Mehr

4.7 Globale Beleuchtungsmodelle

4.7 Globale Beleuchtungsmodelle Erinnerung: - Ein lokales Beleuchtungsmodell berücksichtigt nur das direkt einfallende Licht einer Lichtquelle - Nur lokale Beleuchtung + konstante ambiente Beleuchtung, um reflektiertes und gebrochenes

Mehr

Digitale Bildverarbeitung - Rechnerübung 3

Digitale Bildverarbeitung - Rechnerübung 3 Digitale Bildverarbeitung - Rechnerübung 3 1. Khoros Zur Durchführung der Rechnerübung wird das Programmpaket KHOROS mit seiner Benutzerschnittstelle Cantata verwendet. Nach der Anmeldung am Rechner durch

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Programmieren: Bildbearbeitung

Programmieren: Bildbearbeitung Programmieren: Bildbearbeitung Das Thema der folgenden Aufgaben ist Bildbearbeitung. Sie erhalten dazu ein Rahmenprogramm, das bereits Bilder lesen und darstellen kann. Dieses Rahmenprogramm basiert auf

Mehr

2.2 Kollineare und koplanare Vektoren

2.2 Kollineare und koplanare Vektoren . Kollineare und koplanare Vektoren Wie wir schon gelernt haben, können wir einen Vektor durch Multiplikation mit einem Skalar verlängern oder verkürzen. In Abbildung 9 haben u und v die gleiche Richtung,

Mehr

Kapitel 11 Eigenwerte und Eigenvektoren

Kapitel 11 Eigenwerte und Eigenvektoren Kapitel Eigenwerte und Eigenvektoren. Problem der Diagonalisierbarkeit Es sei wieder K gleich R oder. Eine n n)-matrix A mit Koeffizienten aus K wird als diagonalisierbar bezeichnet, wenn es eine invertierbare

Mehr

Der diskrete Kalman Filter

Der diskrete Kalman Filter Der diskrete Kalman Filter Fachbereich: Informatik Betreuer: Marc Drassler Patrick Winkler 1168954 6. Dezember 2004 Technische Universität Darmstadt Simulation und Systemoptimierung Darmstadt Dribbling

Mehr

6. Algorithmen auf Zeichenketten

6. Algorithmen auf Zeichenketten 6. Algorithmen auf Zeichenketten Motivation Wir lernen nun Algorithmen zur Lösung verschiedener elementarer Probleme auf Zeichenketten zu lösen Zeichenketten spielen eine wichtige Rolle in diversen Gebieten

Mehr

Adaptives Displacement Mapping unter Verwendung von Geometrieshadern

Adaptives Displacement Mapping unter Verwendung von Geometrieshadern Fakultät Informatik Institut für Software- und Multimediatechnik, Professur für Computergraphik und Visualisierung Adaptives Displacement Mapping unter Verwendung von Geometrieshadern Diplomarbeit Timo

Mehr

Mathematische Grundlagen der dynamischen Simulation

Mathematische Grundlagen der dynamischen Simulation Mathematische Grundlagen der dynamischen Simulation Dynamische Systeme sind Systeme, die sich verändern. Es geht dabei um eine zeitliche Entwicklung und wie immer in der Informatik betrachten wir dabei

Mehr

Finite Elemente Modellierung

Finite Elemente Modellierung Finite Elemente Modellierung Modellerstellung Diskretisierung des Kontinuums Methode der Finite Elemente Anwendungsbeispiele der FEM Zugstab: Kraftmethode Zugstab: Energiemethode Zugstab: Ansatzfunktion

Mehr

Bildsegmentierung mit Snakes und aktiven Konturen

Bildsegmentierung mit Snakes und aktiven Konturen Bildsegmentierung mit Snakes und aktiven Konturen 5. Dezember 2005 Vortrag zum Seminar Bildsegmentierung und Computer Vision Übersicht 1 2 Definition der Snake Innere Energie S(c) 3 Statisches Optimierungsproblem

Mehr

Das Trust-Region-Verfahren

Das Trust-Region-Verfahren Das Trust-Region-Verfahren Nadine Erath 13. Mai 2013... ist eine Methode der Nichtlinearen Optimierung Ziel ist es, das Minimum der Funktion f : R n R zu bestimmen. 1 Prinzip 1. Ersetzen f(x) durch ein

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Analyse statischer Volumendaten zur Entwicklung eines adaptiven Raycastingverfahrens. Studienarbeit im Studiengang Computervisualistik

Analyse statischer Volumendaten zur Entwicklung eines adaptiven Raycastingverfahrens. Studienarbeit im Studiengang Computervisualistik Fachbereich 4: Informatik Analyse statischer Volumendaten zur Entwicklung eines adaptiven Raycastingverfahrens Studienarbeit im Studiengang Computervisualistik vorgelegt von Marius Erdt Betreuer: Dipl.-Inform.

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni 1 Ablauf GPU Programm Vertex und Fragment Shader 2 3 4 5 Image Processing 6 Ablauf GPU Programm Ablauf GPU Programm Vertex und Fragment

Mehr

WS 2014/15 FINITE-ELEMENT-METHODE JUN.-PROF. D. JUHRE

WS 2014/15 FINITE-ELEMENT-METHODE JUN.-PROF. D. JUHRE 4.2 FINITE-ELEMENTE-DISKRETISIERUNG Elementierung und Diskretisierung Im Gegensatz zum räumlichen Fachwerk, bei dem bereits vor der mathematischen Diskretisierung ein konstruktiv diskretes Tragwerk vorlag,

Mehr

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder von Tim Sternberg Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder Einleitung Mit Morphing wird der fließende Übergang eines Bildes in ein anderes bezeichnet. Zwei digitale Bilder

Mehr

QUASI-SPLINE-INTERPOLATION BEZÜGLICH GLEICHMÄSSIGER UNTERTEILUNGEN

QUASI-SPLINE-INTERPOLATION BEZÜGLICH GLEICHMÄSSIGER UNTERTEILUNGEN QUASI-SPLINE-INTERPOLATION BEZÜGLICH GLEICHMÄSSIGER UNTERTEILUNGEN IRYNA FEUERSTEIN Es wir ein Verfahren zur Konstruktion einer quasiinterpolierenden Funktion auf gleichmäßig verteilten Konten vorgestellt.

Mehr

Seminar. Visual Computing. Poisson Surface Reconstruction. Peter Hagemann Andreas Meyer. Peter Eisert: Visual Computing SS 11.

Seminar. Visual Computing. Poisson Surface Reconstruction. Peter Hagemann Andreas Meyer. Peter Eisert: Visual Computing SS 11. Poisson Surface Reconstruction Peter Hagemann Andreas Meyer Seminar 1 Peter Eisert: SS 11 Motivation Zur 3D Darstellung von Objekten werden meist Scan-Daten erstellt Erstellung eines Dreieckmodells aus

Mehr

Wavelets made easy Yves Nievergelt

Wavelets made easy Yves Nievergelt Wavelets made easy Yves Nievergelt Kapitel 1 - Haar s Simple Wavelets Das erste Kapitel Haar s Simple Wavelets aus dem Buch Wavelets made easy von Yves Nievergelt behandelt die einfachsten Wavelets und

Mehr

1. Filterung im Ortsbereich 1.1 Grundbegriffe 1.2 Lineare Filter 1.3 Nicht-Lineare Filter 1.4 Separabele Filter 1.

1. Filterung im Ortsbereich 1.1 Grundbegriffe 1.2 Lineare Filter 1.3 Nicht-Lineare Filter 1.4 Separabele Filter 1. . Filterung im Ortsbereich. Grundbegriffe. Lineare Filter.3 Nicht-Lineare Filter.4 Separabele Filter.5 Implementierung. Filterung im Frequenzbereich. Fouriertransformation. Hoch-, Tief- und Bandpassfilter.3

Mehr

Singulärwertzerlegung

Singulärwertzerlegung LMU München Centrum für Informations- und Sprachverarbeitung WS 10-11: 13.12.2010 HS Matrixmethoden im Textmining Dozent: Prof.Dr. Klaus U. Schulz Referat von: Erzsébet Galgóczy Singulärwertzerlegung 1

Mehr

3D-Rekonstruktion medizinischer Daten

3D-Rekonstruktion medizinischer Daten 3D-Rekonstruktion medizinischer Daten Bericht aus der Fraunhofer Charité Kooperation Berlin das F&E Zentrum für neue Interventionstechnologien Direktor: Prof. Dr.-Ing. Erwin Keeve Wissenschaftlicher Mitarbeiter

Mehr

Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung. René Lützner

Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung. René Lützner Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung René Lützner Dresden, 22.05.2013 Motivation Computer Simulationen von dynamischen Molekulardaten Eigenschaften und Verhalten von großen

Mehr