Computergrafik - Inhalt

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Gruppenwettbewerb. Gruppenwettbewerb Aufgabe G1 (8 Punkte)
• • • • • 3.2 Die projektive Erweiterung des E³
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Geometrie von Objektoberflächen
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Graphische Datenverarbeitung IV Dr. Markus Heitz.
Lic.Sc.Inf. Dr. Monique Jucquois-Delpierre
_____________________________ Einführung in die Bildbearbeitung Jucquois-Delpierre 1 Grundlagen Photoshop Ein zentraler Begriff bei Pixelgrafiken.
5.2 Schattierungsverfahren
5. Beleuchtung und Schattierung
Phong Shading (Normaleninterpolation)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Kapitel 5 Stetigkeit.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Java3d „Licht und Material“
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
Special Effects Realistischeres Rendern einer Scene.
Dieter Bergmann, Lichtenfels
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Versagt bei gesättigten Cyan-Tönen:
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Heute: Scherenzange zeichnen
AWA 2007 Natur und Umwelt Natürlich Leben
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
Grundgrößen der Lichttechnik
Bildbearbeitung: Theorie
FHP - Fachbereich Bauingenieurwesen
Computergrafik – Inhalt Achtung! Kapitel ist relevant für CG-2!
Zusatzfolien zu B-Bäumen
4.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computer- grafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe,
Eine Einführung in die CD-ROM
Bildbearbeitung im Unterricht
Syntaxanalyse Bottom-Up und LR(0)
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
4.3 Beleuchtung und Schattierung
4.7 Globale Beleuchtungsmodelle
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Verhalten von Objekten in der Szene
Der Ablauf eines Clear Rex Klärzyklus
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Digitale Bilder Advanced IT Basics
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Helwig Hauser Teil 12: Zusammenfassung All CGR4 revisited.
Helwig Hauser Teil 9: Radiosity Simulation globaler Lichtverteilung.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
Beleuchtung, inkl. Schatten, Reflexionen
Visualieren und Animieren
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
Folie Einzelauswertung der Gemeindedaten
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Bildbearbeitung: Theorie
Die Renderpipeline.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Präsentation transkript:

Computergrafik - Inhalt §0 Historie, Überblick, Beispiele §1 Begriffe und Grundlagen §2 Objekttransformationen §3 Objektrepräsentation und -Modellierung §4 Sichttransformationen §5 Kurven und Flächen §6 Rendering und Visibilität §7 Mapping-Techniken

6.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computergrafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe, auf denen jegliche Verarbeitung von Farbinformationen während des Renderings beruht. Fragestellungen Wie kann man eine bestimmte Farbe exakt spezifizieren? Farbräume, Farbmodelle Wie viele verschiedene Farben können durch eine Grafikhardware spezifiziert werden? Technische Realisierbarkeit Wie exakt kann eine exakt spezifizierte Farbe auf einem Ausgabegerät angezeigt werden? Geräteabhängige Farbräume

6.1 Farbmodelle Hierarchien bekannter Farbmengen Ebener Schnitt durch den drei- dimensionalen Farbraum. Jeder Punkt entspricht einer Farbe. A: Menge aller vom Menschen wahrnehmbaren Farben B: Menge aller von einem Ausgabegerät (z.B. Monitor) darstellbaren Farben – dies ist eine Untermenge von A C: Menge aller von einem Programm spezifizierbaren Farben – beschränkt durch die Grafikhardware (Bildspeicher), z.B. 24 Bit/Pixel → 16777216 Farben – i.A. Untermenge von A und Obermenge von B

6.1 Farbmodelle Dreidimensionaler Farbraum Der traditionellen Beschreibung von Farben durch Namen mangelt es naturgemäß an Exaktheit – Aschgrau, Steingrau, Mausgrau, ... Eine präzise Festlegung erhält man erst durch eine objektive quantitative Spezifikation. Physikalisch gesehen ist eine Farbe eine bestimmte Energie- verteilung im elektromagnetischen Spektrum zwischen 400 und 700 Nanometern Wellenlänge. Anhand physikalischer Experimente und Unter- suchungen der physiologischen Farbwahrnehmung durch das menschliche Auge gelangte man zur Erkenntnis, dass nahezu alle Farben, die das Auge unterscheiden kann, auf eine additive Mischung dreier Grundfarben zurückgeführt werden können.

6.1 Farbmodelle Dreidimensionaler Farbraum (cont.) Definiert man die zu mischenden Anteile z. B. der Grundfarben Rot, Grün und Blau durch ein Tripel (r, g, b) von Gewichtsfaktoren, so lässt sich eine bestimmte Farbe C mittels C = r R + g G + b B exakt spezifizieren. Dies ist jedoch bei weitem nicht die einzige Möglichkeit, einen dreidimensionalen Farbraum zu definieren. Je nach Anforderung können verschiedene standardisierte Farbräume (Farbmodelle) verwendet werden, z. B. RGB: traditioneller Farbraum für Computergrafik, Monitore, ... HSV: erleichtert die intuitive Farbauswahl CIE: internationaler Standard zur Farbspezifikation CMY: subtraktives Farbmodell für die Drucktechnik

6.1 Farbmodelle RGB-Farbmodell Verwendet die Grundfarben Rot, Grün und Blau zur additiven Farbmischung Beschreibung einer Farbe durch ein Tripel (r, g, b) von Gewichtsfaktoren mit 0 ≤ r,g,b ≤ 1. Es gilt: (0,0,0) = Schwarz (1,1,1) = Weiß (1,0,0) = Rot (0,1,0) = Grün (0,0,1) = Blau (0,1,1) = Cyan (1,0,1) = Magenta (1,1,0) = Gelb Im Rechner z.B. bei 8 Bit pro Grundfarbe: 0 ≤ r,g,b ≤ 255. Die Menge aller spezifizierbaren Farben wird im 3D- Raum durch einen Würfel repräsentiert („Farbkörper“) Dieser deckt jedoch nicht den gesamten wahrnehm-baren Farbraum ab!

6.1 Farbmodelle RGB-Farbmodell (cont.) RGB-Farbwürfel

6.1 Farbmodelle RGB-Farbmodell (cont.) Modell ist bezüglich Farbwahrnehmung nicht linear Betrachtet man eine typische Farbauflösung von 8 Bit pro Grundfarbe (sog. True Color), so existieren im Farbwürfel Regionen, in denen benachbarte Punkte für das Auge denselben Farbeindruck hervorrufen. In anderen Regionen hingegen sind die Farben benachbarter Punkte für das Auge sehr wohl voneinander unterscheidbar. Für den Anwender ist es mitunter recht schwierig, zu einer gewünschten Farbe (z. B. Kastanienbraun) ein entsprechendes (r, g, b)-Tupel zu ermitteln. Ebenfalls schwierig ist es beispielsweise, eine Farbe ein wenig abzuschwächen (erfordert ungleiche Änderungen von r, g und b). → Übergang auf HSV-Farbmodell

6.1 Farbmodelle HSV-Farbmodell Entwickelt zur Unterstützung einer intuitiven Farbauswahl (wahrnehmungsorientiertes Farbmodell) Der Farbkörper im 3D-Farbraum ist eine Pyramide mit sechseckiger Grundfläche Verwendet „Zylinderkoordinaten“ Hue Farbe („Farbfamilie“) als „Farbwinkel“ in Grad: 0O ≤ H < 360O Saturation Sättigung: 0 ≤ S ≤ 1 Verkleinerung addiert Weiß Value Helligkeit: 0 ≤ V ≤ 1 Verkleinerung addiert Schwarz

6.1 Farbmodelle Zusammenhang zwischen HSV- und RGB-Modell Die Grundfläche der HSV-Pyramide entsteht aus dem RGB-Würfel durch Projektion entlang der Raum- diagonale von Weiß nach Schwarz auf eine dazu senkrecht stehende Ebene. Es ergeben sich folgende korrespondierende Punkte: RGB Farbe HSV (1, 0, 0) Rot (0, 1, 1) (1, 1, 0) Gelb (60, 1, 1) (0, 1, 0) Grün (120, 1, 1) Cyan (180, 1, 1) (0, 0, 1) Blau (240, 1, 1) (1, 0, 1) Magenta (300, 1, 1) Bemerkung: Im HSV-Modell besitzen Komplementär- farben eine Winkeldifferenz von 180° im H-Wert

6.1 Farbmodelle Zusammenhang HSV- und RGB-Modell (cont.) Schreitet man im RGB-Würfel entlang der Hauptdiagonale von Schwarz nach Weiß, so kann man in jedem Punkt P dieser Diagonale einen Sub-Würfel wie folgt definieren: Die Hauptdiagonalen der Würfel fallen zusammen Eine Ecke des Sub-Würfels liegt bei Schwarz = (0,0,0), die gegenüberliegende Ecke liegt bei P Der Sub-Würfel liegt im Innern des RGB-Würfels Somit definiert jeder Sub-Würfel bei Anwendung der oben beschriebenen Projektion entlang der Hauptdiagonale ein Sechseck, das einem Schnitt durch die HSV-Pyramide für V = const. entspricht. Die Hauptdiagonale des RGB-Würfels entspricht also der V-Achse der HSV-Pyramide.

6.1 Farbmodelle CIE-Farbraum Internationaler, geräteunabhängiger Standard zur Farbspezifikation, geeignet zur Beschreibung aller vom Menschen wahrnehmbaren Farben (der RGB-Farbkörper ist hierfür nicht geeignet!) Universeller Farbraum Verwendet die künstlichen Grundfarben X, Y und Z zur additiven Farbmischung (CIE XYZ-Farbraum) Begründung: Keine Auswahl dreier Grundfarben aus dem sichtbaren Farbbereich kann durch additive Mischung mit nicht negativen Gewichten alle wahrnehmbaren Farben abdecken. Die Mischung schon zweier Grundfarben ergibt immer eine weniger gesättigte Farbe Repräsentation einer Farbe C durch C = X X + Y Y + Z Z

6.1 Farbmodelle CIE-Farbraum (cont.) CIE XYZ Farbkörper: enthält alle wahrnehmbaren Farben Von einem Monitor darstellbare Farben

6.1 Farbmodelle CIE-Farbraum (cont.) Eine alternative Spezifikation des CIE XYZ- Farbtripels (X, Y, Z) ergibt sich durch eine Abbildung (X, Y, Z) → (x, y, Y) mit Wertet man die Gleichungen für alle Farben des XYZ-Farbkörpers aus und trägt man die Ergebnisse in einem (x, y)-Diagramm ein, so erhält man das hufeisenförmige CIE-Diagramm der Chromatizität. und (CIE xyY-Farbraum)

6.1 Farbmodelle CIE-Farbraum (cont.) Das (x, y)-Diagramm enthält (als 2D-Projektion der Ebene X+Y+Z=1 in die XY-Ebene) alle sichtbaren Farben, wobei der Luminanz-Anteil ignoriert wird. Auf dem äußeren Rand der Hufeisenform liegen die reinen Spektralfarben von Blau (400nm) bis Rot (700nm). Auf der Geraden zwischen Blau und Rot befinden sich die Lila- und Magenta-Farben.

6.1 Farbmodelle Gamma-Korrektur Bei einer Fernsehübertragung erwartet der Zuschauer, dass er eine Szene zu Hause in derselben Farbqualität sieht, wie er sie in der Realität auch sehen würde. Um dies zu verwirklichen, wird in der Fernsehkamera bereits eine Präkompensation vorgenommen, die die Nichtlinearität der Farbwiedergabe einer üblichen Fernsehröhre korrigiert.

6.1 Farbmodelle Gamma-Korrektur (cont.) Bei der Darstellung von Szenen in der Computergrafik übernimmt ein Renderer die Rolle der Kamera, besitzt aber generell eine lineare Intensitätscharakteristik. Da jedoch ein Monitor eine ähnliche Nichtlinearität bei der Farbwiedergabe aufweist wie ein Fernsehgerät, muss dem Renderingprozess eine geeignete Gamma-Korrektur nachgeschaltet werden. In der Regel werden hierzu im RGB-Modell für jeden Farbkanal die zu ersetzenden Werte in einer look-up- Tabelle nachgeschlagen (bei 8 Bit/Grundfarbe: drei Arrays der Länge 256). Bildquelle: http://www.elektroniknet.de

6.2 Visibilitätsverfahren Motivation Die grundlegende Modellierung unserer Objekte besteht in letzter Konsequenz aus planaren Polygonen, meist aus Vier- oder Dreiecken. Das Dreieck ist die favorisierte Form, denn ein Dreieck hat eine eindeutige Normale, die anzeigt, wo das Dreieck „hinzeigt“. Ein Viereck nicht? Den Prozess, der aus der mathematischen Beschreibung, beispielsweise einer Kugel, eine Menge von Dreiecken produziert, nennt man tesselation, triangulation bzw. „Tesselation“, „Triangulierung“ Vorsicht: Ein Viereck muss nicht planar sein!

6.2 Visibilitätsverfahren Motivation (cont.) Die einfachste Form, unsere Objekte darzustellen (zu rendern) ist die Wireframe-Darstellung – wir zeichnen lediglich die Kanten der Polygone. Bemerkungen Wireframe-Darstellung mit Darstellung aller Kanten, d.h. auch der (teilweise) verdeckten Kanten von Objekten ist zwar trivial, die Darstellung einer 3D-Szene wirkt allerdings nicht wirklich räumlich → Visual Cluttering Wireframe-Darstellung mit Darstellung nur der wirklich sichtbaren Kanten führt zu sog. hidden-line-Algorithmen, die absolut nicht mehr trivial sind. → Man muss sich nun um die Sichtbarkeit / die Visibilität Gedanken machen!

6.2 Visibilitätsverfahren Ziel der Visibilitätsverfahren Möglichst exakte Bestimmung der von einem gegebenen Blickpunkt aus sichtbaren bzw. unsichtbaren Teile der darzustellenden Szene Wünschenswert: hohe Interaktionsrate Eingaben des Benutzers wirken sich direkt auf die Darstellung aus. Im günstigsten Falle ist sogar eine Echtzeitausgabe der Szene möglich. Einteilung der Verfahren: Objektraumverfahren Geräteunabhängig, Genauigkeit ist Maschinengenauigkeit Bildraumverfahren Geräteabhängig Genauigkeit ist Auflösung des Ausgabegerätes

6.2 Visibilitätsverfahren Unsichtbarkeit bzw. Verdeckungen Treten auf, wenn bei der Projektion der 3-dim. Szene auf die Bildebene unterschiedliche Objektteile auf dieselbe Stelle abgebildet werden. Sichtbar sind diejenigen Objektpunkte, die dem Auge des Betrachters am nächsten gelegen sind. Daher ist bei der Darstellung nicht nur die (x, y)-Koordinate in der Bildebene zu berücksichtigen, sondern auch die Tiefenrelation der Szene (z-Koordinate). Bem.:

6.2 Visibilitätsverfahren Begriff: Kohärenz „Ausnutzung lokaler Ähnlichkeiten“ Beispiele: Flächenkohärenz: Eigenschaften benachbarter Punkte auf einer Fläche ändern sich oft nur unwesentlich, z.B. Farbe Tiefenkohärenz: Die Tiefe z(x,y) auf einer Fläche kann oft inkrementell berechnet werden

6.2 Visibilitätsverfahren Back-Face-Culling Die Entfernung verdeckter Flächen und Linien kann sehr aufwendig sein. Es erweist sich daher als günstig, mit einem möglichst einfachen Test das Problem möglichst stark zu vereinfachen, bevor kompliziertere Verfahren eingesetzt werden. Einen ebenso einfachen wie wirkungsvollen Ansatz stellt das Back-Face-Culling dar: In Abhängigkeit von der Position des Betrachters werden die Rückseiten undurchsichtiger Körper entfernt, da diese naturgemäß nicht sichtbar sind. Wir entscheiden auf Grund der Normalen, welche Polygone von uns „wegsehen“, diese werden nicht mehr dargestellt!

6.2 Visibilitätsverfahren Back-Face-Culling (cont.) Klassifikation der Rückseiten Es werden die Normalenvektoren Ni aller Flächen betrachtet Bei einer Vorderseite enthält der Normalenvektor Ni eine Komponente in Blickrichtung, d. h. es gilt für das Skalarprodukt aus Vektor zum Augpunkt (viewing vector) v und Ni : (Sichtbarkeitsbedingung!) N5 N4 N6 N1 N2 N3 v Achtung: Die Orientierung des Blickrichtungsvektors ist wichtig => Vorzeichenwechsel ! Skalarprodukt gibt die Länge des projizierten Normalenvektors auf den Blickrichtungsvektor an. hier: Parallelprojektion

6.2 Visibilitätsverfahren Back-Face-Culling (cont.) Eigenschaften Die Zahl der beim Rendering zu berücksichtigenden Polygone wird durch Entfernen der Rückseiten durchschnittlich etwa um die Hälfte reduziert. Der Aufwand zur Berechnung des Skalarprodukts ist minimal. Besteht die Szene nur aus einem einzelnen konvexen Polyeder, so löst Back-Face-Culling bereits das Visibilitätsproblem. Bei konkaven Polyedern oder Szenen, an denen mehrere Objekte beteiligt sind, kann es zu Selbst- und / oder Fremdverdeckung kommen. Hier werden aufwendigere Verfahren benötigt. Objektraumverfahren!

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (Catmull, 1975) Bestimmt Sichtbarkeit von Bildpunkten Arbeitet im Bildraum / im Display-Koordinatensystem Geeignet für die Bildausgabe auf Rastergeräten Arbeitsweise Funktional gesehen führt der z-Buffer-Algorithmus innerhalb des Bildraums für jeden Bildpunkt eine Suche nach demjenigen Polygon durch, in dessen Innern der Punkt liegt und dessen zugehöriger z-Wert am größten ist (am weitesten vorne liegt). Zur Realisierung wird zusätzlicher Speicher verwendet (der sog. z-Buffer). Im z-Buffer wird zu jedem Bildpunkt der größte z-Wert, der bisher aufgetreten ist, gespeichert.

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Algorithmus Initialisiere Bildspeicher (frame buffer) mit Hintergrundfarbe Initialisiere z-Buffer mit minimalem z-Wert Scan-conversion aller Polygone (beliebige Reihenfolge): Berechne z-Wert z(x, y) für jedes Pixel (x, y) im Polygon Falls z(x, y) größer als der Eintrag im z-Buffer bei (x, y) ist, trage Polygonattribute (Farbe) in Bildspeicher bei (x, y) ein und setze z-Buffer bei (x, y) auf z(x, y) Nach Abarbeitung des Algorithmus enthält der Bildspeicher das gewünschte Bild, der z-Buffer dessen Tiefenverteilung.

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Beispiel z-Werte codiert durch Zahlen: größere Zahl ⇒ näher zum Auge Initialisiere z-Buffer mit min. z-Werten Addiere ein Polygon mit konstantem z-Wert m 5 + =

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Beispiel (cont.) Addiere ein Polygon, welches das 1. Polygon schneidet 5 m 5 5 5 5 5 5 5 m 2 3 4 5 6 7 5 5 5 5 5 5 m m 5 5 5 5 5 m m m 5 5 5 5 m m m m + = 5 5 5 2 m m m m 6 5 4 3 2 m m m 7 6 5 4 3 2 m m m m m m m m m m

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Berechnung von z bei Polygonen Zur Berechnung von z(x,y) : Ax+By+Cz+D=0 Also: z = (-D – Ax – By) / C = z(x, y) Damit: z(x+dx,y) = (-D – A(x+dx) – By) / C = z(x,y) – dx∙A/C Nur eine Subtraktion notwendig, da A/C konstant ist und dx=1!

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Vorteile Sehr einfache Implementierung des Algorithmus (Soft- und Hardware!) Unabhängig von der Repräsentation der Objekte! Es muss nur möglich sein, zu jedem Punkt der Oberfläche einen z-Wert bestimmen zu können Keine Komplexitätsbeschränkung der Bildszene Keine besondere Reihenfolge oder Sortierung der Objekte notwendig (z. B. Tiefensortierung)

6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Nachteile Auflösung des z-Buffers bestimmt Diskretisierung der Bildtiefe Beispiel: Bei 20 Bit sind genau 220 Tiefenwerte unterscheidbar – problematisch sind weit entfernte Objekte mit kleinen Details Die sinnvolle Wahl der near- und far-clipping-plane (begrenzen view frustum!) ist entscheidend für die Qualität des Algorithmus! Es wird ein großer Speicher benötigt – Abhilfe durch Zerlegung in Teilbilder oder Streifen Berücksichtigung von Transparenz und Antialiasing nur durch aufwendige Modifikationen möglich

6.2 Visibilitätsverfahren Scan-Line z-Buffer-Algorithmus Variation des z-Buffer-Algorithmus zur Einsparung von Speicher Arbeitet auf einer Rasterzeile (z-Buffer der Pixelhöhe 1) Vergleich der Vorgehensweisen z-Buffer Initialisierung Für alle Polygone Für alle Rasterzeilen im Polygon ... Scan-Line z-Buffer Für alle Rasterzeilen Initialisierung Für alle Polygone ...

6.2 Visibilitätsverfahren Ray Casting Schieße (englisch: cast) Strahlen (englisch: ray) vom Augpunkt durch alle Pixel der Bildebene Berechne Schnittpunkte mit allen Objekten der Szene Das Objekt mit dem am nahesten gelegenen Schnittpunkt ist in diesem Pixel sichtbar Bildraumverfahren! Eye Pixel

6.2 Visibilitätsverfahren Ray Casting (cont.) Beispiel: Schnitt mit einer impliziten Kugel Strahl Augpunkt e Sichtrichtung v Strahlparameter t Einsetzen des Strahls s(t) für x liefert:

6.2 Visibilitätsverfahren Ray Casting (cont.) Lösen dieser quadratischen Gleichung nach t liefert maximal zwei Parameter der Schnittpunkte s1 und s2: Derjenige Schnittpunkt mit kleinstem t > 0 liegt dem Augpunkt am nächsten.

6.2 Visibilitätsverfahren Ray Casting (cont.) Beispiel: Schnittpunktberechnung mit einem Polygon Gültigkeit des Schnittpunktes verifizieren! Polygon in Dreiecke zerlegen Betrachte Summe der Flächeninhalte der Teildreiecke. Ist diese Summe größer als der Flächeninhalt des ursprünglichen Dreiecks, so liegt der Punkt 𝑠 außerhalb.

6.2 Visibilitätsverfahren Ray Casting (cont.) Nachteile Für jeden Strahl muss jedes Objekt der Szene daraufhin getestet werden, ob der Strahl das Objekt schneidet Bei einer Auflösung 1024*1024 mit 100 Objekten in der Szene müssen 100 Millionen Schnittpunkt-berechnungen durchgeführt werden! Bis zu 95% der Rechenzeit werden für Schnittpunkt-berechnungen bei typischen Szenen verbraucht!

6.2 Visibilitätsverfahren Ray Casting (cont.) Beschleunigungsansätze Transformation der Strahlen auf die z-Achse; werden die Objekte mit der gleichen Transformation verschoben, so tritt ein Schnittpunkt immer bei x=y=0 auf. Bounding Volumes: Komplexe Objekte werden mit einfacher zu testenden Objekten umschlossen. Haben diese Bounding Volumes keinen Schnittpunkt mit einem Strahl, so sind auch die darin enthaltenen Objekte nicht auf einen Schnittpunkt zu testen. Beispiele: Bounding Box, Bounding Sphere Vermeidung von unnötigen Schnittpunktberechnungen: Hierarchien und Raumteilung

6.2 Visibilitätsverfahren Ray Casting (cont.) Hierarchien Baumartige Strukturen von Bounding Volumes Blätter: Objekte der Szene Innere Knoten: Bounding Volume seiner Kinder Schneidet ein Strahl einen inneren Knoten nicht, so kann der Strahl auch nicht die Objekte seiner Kinder schneiden Problem: Die Generierung guter Hierarchien ist schwierig. Hierarchien beim modellieren: u.U. sehr flach und eher durch die Struktur des zu modellierenden Objektes induziert als durch die Verringerung von Schnittberechnungen

6.2 Visibilitätsverfahren Ray Casting (cont.) Raumteilung Top-down Ansatz Zuerst wird die Bounding Box der Szene berechnet Anschließend wird diese in (gleich große) Teile unterteilt Jede Unterteilung enthält eine Liste mit allen Objekten, die in der Partition komplett oder auch nur teilweise enthalten sind Adaptiv: unterteile öfter wo auch mehr Objekte sind

6.2 Visibilitätsverfahren Ray Casting (cont.) Raumteilung (cont.) Nur wenn ein Strahl eine Partition schneidet, müssen Schnittpunktberechnungen mit den assoziierten Objekten durchgeführt werden

6.2 Visibilitätsverfahren Ray Casting (cont.) Raumteilung (cont.) Notwendig: Testen, ob der berechnete Schnittpunkt innerhalb der aktuellen Partition liegt! Abhilfe: Alle Partitionen solange weiterverfolgen, bis ein Schnittpunkt gefunden wird, der innerhalb der Partition liegt.

6.2 Visibilitätsverfahren Increasing Reality... Was können wir bisher? Was fehlt uns noch? Farben Beleuchtung Highlights Schatten Transparenz Reflektionen Refraktionen

6.3 Beleuchtung und Schattierung Die Grundbestandteile des Renderprozesses Oberfläche Reflektion/ Transmission/ Emission Emission Atmosphärische Streuung

6.3 Beleuchtung und Schattierung Beleuchtung / Lichtquellen Punktlicht Das Licht strahlt von einem Punkt in der Szene gleichmäßig in alle Richtungen. Richtungslicht Das Licht strahlt (von einem unendlich weit entfernten Punkt aus) in eine bestimmte Richtung. Spotlight Das Licht strahlt in einem Kegel, ausgehend von der Kegelspitze. Flächenlichtquellen Weiche Ausleuchtung; technisch realisiert durch Ebenen, Kegel oder Zylinder mit „vielen“ Lichtquellen.

6.3 Beleuchtung und Schattierung Die Bestimmung der Intensität (Farbe) derjenigen Pixel, auf die ein Objekt (z. B. in Form eines Polygons) projiziert wird, wird mittels sogenannter Beleuchtungs-, Reflexions- und Schattierungs- algorithmen bzw. -modellen durchgeführt. Illumination model Vorsicht vor Begriffswirrwarr in der Literatur! illumination model, lighting model, reflection model, shading model Mit dem Zusatz local ~ Berechnung der Intensität (Farbe) eines Punktes in Abhängigkeit von direktem Lichteinfall einer Lichtquelle Beispiele: Phong local reflection model, physikalisch basierte Modelle → Nur direkte Beleuchtung!

6.3 Beleuchtung und Schattierung Illumination model (cont.) Mit dem Zusatz local ~ (cont.) direkt direkt A indirekt B

6.3 Beleuchtung und Schattierung Illumination model (cont.) Mit dem Zusatz global ~ Berechnung der Intensität (Farbe) eines Punktes in Abhängigkeit von direktem Lichteinfall einer Lichtquelle und indirekt einfallendem Licht, d. h. nach Reflexion(en) an oder Transmission(en) durch die eigene oder andere Oberflächen Beispiele Ray-Tracing-Verfahren Radiosity-Verfahren Globale Beleuchtungsverfahren benutzen oft lokale Reflexionsmodelle oder erweitern diese geeignet. → Direkte und indirekte Beleuchtung!

6.3 Beleuchtung und Schattierung Shading model Grundstruktur in die ein Beleuchtungsmodell „eingebettet“ ist Ein Schattierungsmodell bestimmt, wann ein Beleuchtungsmodell angewendet wird Bekannte Varianten Auswertung eines Beleuchtungsmodells für jedes Pixel, z. B. oft bei Ray-Tracing-Verfahren angewendet Auswertung eines Beleuchtungsmodells für ausgewählte Pixel, Farben von „Zwischenpixel“ werden per Interpolation bestimmt → Interpolative shading techniques z.B. Flat shading, Gouraud shading, Phong shading

6.3 Beleuchtung und Schattierung Gängige Praxis-Kombination Weltkoordinaten Bildschirmkoordinaten Local reflection model: berechnet die Lichtintensität an jedem Punkt P auf der Oberfläche eines Objektes Interpolative shading algorithm: interpoliert Pixelintensitäten I aus berechneten Lichtintensitäten in den Polygonecken

6.3 Beleuchtung und Schattierung Gängige Praxis-Kombination: (cont.) Gibt es hier kein Problem? Beleuchtung (und Betrachtung) der Szene erfolgt in Weltkoordinaten Interpolation zwischen Intensitätswerten erfolgt in Bildschirmkoordinaten Projektionstransformationen sind i. d. R. nicht affin! D.h.: Wir verwenden beim Interpolationsschema (z.B. bei linearer Interpolation) automatisch „falsche“ Teilverhältnisse in Bezug auf das Weltkoordinatensystem! Aber: Trotz mathematischer Inkorrektheit liefert diese Kombination schnelle und akzeptable visuelle Resultate! Weltkoordinaten Bildschirmkoordinaten

6.4 Lokale Beleuchtungsmodelle Geometriebetrachtung P P Punkt auf Objektoberfläche N Flächennormalenvektor in P, normiert L Vektor von P zu einer Punktlichtquelle, normiert V Vektor von P zum Augpunkt (Viewing), normiert ϕi, θi (lokale) sphärische Koordinaten (von L und V)

6.4 Lokale Beleuchtungsmodelle Wiederholung: Reflexionsgesetz, (perfekte) spiegelnde Reflexion R = Vektor des reflektierten Strahls, normiert N L R θ R2 R1 Es gilt: L und R liegen in einer Ebene und θ = θin = θref

6.4 Lokale Beleuchtungsmodelle Wir betrachten zunächst das am häufigsten verwendete lokale Beleuchtungsmodell von Phong (Bui-Thong), 1975 Achtung: Es handelt sich um ein empirisches Modell ohne wirkliche physikalische Basis, aber guten praktischen Resultaten! Das Modell simuliert folgende physikalische Reflexionsphänomene Perfekte/vollkommene spiegelnde Reflexion: Ein Lichtstrahl wird ohne sich aufzustreuen, perfekt nach dem Reflexionsgesetz reflektiert. Oberfläche: idealer Spiegel, existiert in der Realität nicht

6.4 Lokale Beleuchtungsmodelle

6.4 Lokale Beleuchtungsmodelle Das Modell simuliert folgende physikalische Reflexionsphänomene (cont.) Unvollkommene spiegelnde Reflexion Der Lichtstrahl wird bei der Reflexion „aufgespalten“, es entsteht ein Reflexionskegel um die ausgezeichnete Reflexionsrichtung. Oberfläche: unvollkommener Spiegel, rauhe Oberfläche, ein Oberflächenelement ist mikroskopisch aus vielen kleinen perfekten Spiegeln mit leicht unterschiedlichen Ausrichtungen zusammengesetzt

6.4 Lokale Beleuchtungsmodelle Das Modell simuliert folgende physikalische Reflexionsphänomene (cont.) Perfekte/vollkommene diffuse Reflexion Der Lichtstrahl wird bei der Reflexion perfekt gestreut, d. h. mit gleichmäßiger Intensität in alle Richtungen Oberfläche: ideale matte Oberfläche, existiert in der Realität nicht, annäherungsweise: feine Lage Puder Das Phong Beleuchtungsmodell sieht vor, dass das reflektierte Licht eines Oberflächenpunktes aus drei Anteilen besteht, die linear kombiniert werden: reflected light = diffuse component + specular component + ambient light Streulicht + Glanzlicht + Umgebungslicht

6.4 Lokale Beleuchtungsmodelle Ambient light Hilfskonstruktion! Der ambiente Teil wird oft konstant gewählt und simuliert die globale bzw. die indirekte Beleuchtung! Dies ist notwendig, da einige Objekte die Lichtquelle(n) nicht sehen und somit in dem Modell schwarz dargestellt würden. In der Realität werden solche Objekte aber indirekt beleuchtet. Durch das simple Addieren einer Konstante wird eine sehr komplexe globale Beleuchtungsberechnung ersetzt. Welchen Oberflächentyp beschreibt das Modell? Die lineare Kombination von diffuser und spiegelnder Reflexion entspricht zum Beispiel der Physik polierter Oberflächen, z. B. poliertem Holz (transparente Schicht: spiegelnd, Oberfläche: diffus)

6.4 Lokale Beleuchtungsmodelle Polierte Oberflächen:

6.4 Lokale Beleuchtungsmodelle Das mathematische Modell (ohne Farbe) Die Physik der Oberfläche wird über die Verhältnisse der einzelnen Komponenten modelliert. Für diese Konstanten gilt: Diffuse Reflexion: mit Ii Intensität des einfallenden Lichts θ Winkel zwischen Punktnormale N und Lichtvektor L

6.4 Lokale Beleuchtungsmodelle Diffuse Reflexion (cont.) Also: Die diffuse Komponente des Phong-Modells modelliert das Kosinusgesetz von Lambert: Bei ideal diffusen (matten) Oberflächen ist die Intensität des (in alle Richtungen gleich) reflektierten Lichtes eine Funktion des Kosinus zwischen Oberflächennormale und Lichtvektor.

6.4 Lokale Beleuchtungsmodelle Spiegelnde Reflexion: Physikalisch gesehen besteht die spiegelnde Reflexion aus einem Abbild der Lichtquelle, das über einen Teil der Oberfläche „geschmiert“ ist – üblicherweise als Highlight bezeichnet. Ein Highlight kann vom Betrachter nur gesehen werden, wenn seine Betrachtungsrichtung (V) nahe der Reflexionsrichtung (R) liegt. Dies wird simuliert durch: mit Ω Winkel zwischen V und R n simuliert Perfektionsgrad der Oberfläche (n → ∞ heißt perfekter Spiegel, d.h. reflektiertes Licht nur in Richtung R)

6.4 Lokale Beleuchtungsmodelle Spiegelnde Reflexion (cont.) Also:

6.4 Lokale Beleuchtungsmodelle Spiegelnde Reflexion: (cont.) Also: Bemerkung: Für verschiedene L entsteht (bis auf die Ausrichtung um R) immer der gleiche Reflexions- Intensitätskegel. Dies entspricht nicht der realen Abhängigkeit von Spiegelungen von der Ausrichtung des Lichtvektors! Gravierender Mangel des Models!

6.4 Lokale Beleuchtungsmodelle Das Gesamtmodell Im 2D-Schnitt: specular diffuse ambient

6.4 Lokale Beleuchtungsmodelle Beispiel ka konstant zunehmendes ks zunehmendes n

6.4 Lokale Beleuchtungsmodelle Bemerkung Aus Geschwindigkeitsgründen stört im bisherigen mathematischen Modell die Berechnung des Reflexionsvektors R. Man definiert einen neuen Vektor H (halfway), mit der Richtung H=(L+V)/2, und betrachtet statt R∙V jetzt N∙H, das sich „auf die gleiche Art und Weise wie R∙V verhält“. Damit ergibt sich: Blinn-Modell

6.4 Lokale Beleuchtungsmodelle Das mathematische Modell (mit Farbe) Für farbige Objekte (Lichtquellen) wird das Modell getrennt auf die Farbkomponenten Ir, Ig, Ib angewendet: mit kdr, kdg, kdb modellieren die Farbe des Objektes ksr, ksg, ksb modellieren die Farbe der Lichtquelle (für weißes Licht ist ksr = ksg = ksb) kar, kag, kab modellieren die Farbe des Umgebungslichtes

6.4 Lokale Beleuchtungsmodelle Bemerkungen Das Beleuchtungsmodell nach Phong ist kein Versuch, optische Gesetze physikalisch exakt zu modellieren. Das Modell ist empirisch! Die lokale Beleuchtung ist schnell zu berechnen, die Bilder sind gut. Außer der Normaleninformation werden keine weiteren Geometrie-Informationen verwendet! Diffuser und spiegelnder Anteil werden lokal berechnet. Die Farbe des spiegelnden Anteils wird durch die Farbe der Lichtquelle bestimmt (bzw. über die der Lichtquelle zugeordneten Konstanten ksr, ksg, ksb).

6.4 Lokale Beleuchtungsmodelle Bemerkungen (cont.) Gravierende Mängel des Modells Die Intensität der spiegelnden Reflexion hängt nicht wirklich von der Ausrichtung des Lichtvektors ab! Objektoberflächen wirken „plastikhaft“, zum Beispiel lässt sich kein blankes Metall modellieren. Abhilfe Physikalisch basierte lokale Beleuchtungsmodelle, die versuchen, die BRDF (bi-directional reflection distribution function) korrekt zu simulieren, z.B. Cook-Torrance oder Blinn (hauptsächlich für Metalle) Oder gänzlich andere Techniken, z.B. Mapping-Verfahren

6.4 Lokale Beleuchtungsmodelle Nachteile „rein“ lokaler Beleuchtungsmodelle: Spiegeln Idealfall eines einzelnen von einer einzigen Punktlichtquelle beleuchteten Objektes in der Szene wider Betrachten ausschließlich direkte Beleuchtung (bis auf Hilfskonstruktionen) Interaktion mit anderen Objekten nicht modelliert (d.h. keine indirekte Beleuchtung, kein Schattenwurf!) Lösung: globale Beleuchtungsverfahren Späteres Unterkapitel!

6.5 Interpolative Schattierungstechniken Wie wird nun die Auswertung eines Beleuchtungsmodells bei einem Objekt zur Bestimmung der Lichtintensität auf dessen Oberfläche angewendet? Wir setzen im Folgenden eine polygonale Objektrepräsentation, also eine facettierte Darstellung, voraus. Man beachte die Unterscheidung zwischen (dreidimensionalem) Objektraum und (zweidimensionalem) Bildraum! Weltkoordinaten Bildschirmkoordinaten

6.5 Interpolative Schattierungstechniken Flat Shading Pro Polygon / Facette wird das verwendete Beleuchtungsmodell genau einmal in einem ausgewählten Oberflächenpunkt ausgewertet. Die dort ermittelte Lichtintensität wird auch allen weiteren Punkten der Polygonoberfläche zugewiesen. Grundlage der Berechnung ist die Polygonnormale oder Flächennormale ((sur)face normal) im Objektraum. (hier z. B. N1, N2, N3, N4, ...) Als ausgewählte Punkte werden z. B. die Polygonschwerpunkte oder der Einfachheit wegen Polygoneckpunkte gewählt.

6.5 Interpolative Schattierungstechniken Flat Shading (cont.) Einfaches, kostengünstiges Verfahren, Interpolation findet nicht statt Kanten in Polygonnetzen bleiben bei der Darstellung sichtbar, Objekte werden facettiert dargestellt, unstetiger Intensitätsverlauf über die Polygonkanten „Runde“ Objekte nur durch extrem hohe Polygonanzahl Geht dies auch anders? Anwendung für Voransicht, Entwurfsansicht, aber auch Mobile Computing und Visualization

6.5 Interpolative Schattierungstechniken Gouraud and Phong Shading Beide Verfahren versuchen mittels Interpolation die Kanten zwischen einzelnen Polygonfacetten in Polygonnetzen zu glätten bzw. ganz zum Verschwinden zu bringen. Bem.: Das Polygonnetz soll die Approximation einer gekrümmten Oberfläche darstellen) Grundlage der Berechnung sind die Eckpunkt- normalen (vertex normals) in den gemeinsamen Polygoneckpunkten. (hier z. B. NA, ...) Eine Eckpunktnormale entsteht aus (gewichteter) Mittelung der Polygonnormalen aller angrenzenden Polygone mit entsprechendem gemeinsamen Eckpunkt. (Normalisierung nicht vergessen!)

6.5 Interpolative Schattierungstechniken Gouraud and Phong Shading (cont.) Beide Verfahren bedienen sich einer bilinearen Interpolation im Bildraum: Werte einer Größe im Innern (und auf dem Rand) eines Polygons werden aus den Werten der Größe in den Eckpunkten des Polygons (i. A. bezüglich des Objektraums ermittelt) mittels zweifacher linearer Interpolation im Bildraum bestimmt. Effiziente Implementierungen arbeiten Scanline-weise und inkrementell. P1(x1,y1) P2(x2,y2) P3(x3,y3) P4(x4,y4) Pb(xb,ys) Pa(xa,ys) Ps(xs,ys)

6.5 Interpolative Schattierungstechniken Gouraud and Phong Shading (cont.): Bilineare Interpolation 0. Schritt: Werte W(P1), W(P2), W(P3), W(P4) bestimmen 1. Schritt: Schnittpunkte Scanline mit Polygonkanten Pa und Pb bestimmen 2. Schritt: Werte W(Pa), W(Pb) bestimmen 3. Schritt: Wert W(Ps) bestimmen P1(x1,y1) P2(x2,y2) P3(x3,y3) P4(x4,y4) Pb(xb,ys) Pa(xa,ys) Ps(xs,ys)

6.5 Interpolative Schattierungstechniken Gouraud Shading Die Auswertung des Beleuchtungsmodells erfolgt ausschließlich in den Polygoneckpunkten unter Ausnutzung der Eckpunktnormalen. Mittels Interpolation folgt die Berechnung der Intensitätswerte projizierter innerer Polygonpunkte.

6.5 Interpolative Schattierungstechniken Gouraud Shading (cont.) Kanten in Polygonnetzen werden geglättet, der Intensitätsverlauf über die Polygonkanten ist stetig, aber nicht wirklich glatt → Anfälligkeit des Verfahrens für Mach-Band-Effekte Verfahren kann Highlights nicht angemessen darstellen Diese können nur entstehen, falls die Betrachtungsrichtung nahe der Reflexionsrichtung liegt; das Beleuchtungsmodell wird aber nur in den Eckpunkten ausgewertet Highlights werden durch Abtastfehler „verschluckt“

6.5 Interpolative Schattierungstechniken Gouraud Shading (cont.) Da Highlights i.d.R. sowieso verschluckt werden, ist eine Kombination von Gouraud Shading und einem Beleuchtungsmodell mit ausschließlich diffuser Reflexionskomponente gängig. Bemerkung: Gouraud Shading wird als Standard-Schattierungsverfahren von heutiger Graphikhardware effizient umgesetzt.

6.5 Interpolative Schattierungstechniken Phong Shading Die Auswertung des Beleuchtungsmodells erfolgt für jeden projizierten Punkt der Polygonoberfläche. Die Oberflächennormalen in den einzelnen Polygonpunkten werden mittels Interpolation aus den Eckpunktnormalen ermittelt. (Normalisierung nicht vergessen!)

6.5 Interpolative Schattierungstechniken Phong Shading (cont.) Intensitätsverlauf über die Polygonkanten ist stetig und glatt; das Erscheinungsbild der realen, gekrümmten Oberfläche wird durch die Wahl der interpolierten Normalen gut angenähert Äußerst rechenaufwendiges Verfahren! Highlights werden adäquat dargestellt Bemerkung: Phong Shading wird von heutiger high-end Graphikhardware unterstützt.

6.5 Interpolative Schattierungstechniken Flat, Gouraud und Phong Shading im Vergleich

6.5 Interpolative Schattierungstechniken Flat, Gouraud und Phong Shading im Vergleich Flat-Shading Gouraud-Shading Phong-Shading Ein Beleuchtungswert für das gesamte Polygon Interpolation der Beleuchtungswerte an den Eckpunkten Interpolation der Normalen an den Eckpunkten und Berechnen der Beleuchtungswerte

6.5 Interpolative Schattierungstechniken Bemerkung: Was muss beachtet werden, wenn bei der Anwendung von Gouraud oder Phong Shading Polygonkanten explizit als Kanten sichtbar bleiben sollen? Von der räumlichen Position gemeinsame Polygoneckpunkte und -kanten müssen für die beteiligten Polygone explizit separat gespeichert werden. Enge Verknüpfung und Abhängigkeit zwischen der Schattierungstechnik und der Polygonalisierung bzw. der Triangulierungsmethode für das Objekt. (hier treten i. d. R. in der Praxis beim Datentransfer zwischen Visualisierungssystemen ungeahnte Schwierigkeiten auf!)

6.5 Interpolative Schattierungstechniken Beispiel: Wireframe-Darstellung / Flat Shading Wireframe Flat Shading

6.5 Interpolative Schattierungstechniken Beispiel: Gouraud / Phong Shading Gouraud Shading Phong Shading

6.6 Das Auge isst mit... Bevor wahrgenommene visuelle Impulse vom zuständigen Teil im Gehirn verarbeitet werden, unterliegen die Intensitätsinformationen im Auge einer Art Vorverarbeitung. Wie reagieren nun die Lichtrezeptoren im Auge auf Unterschiede einfallender Lichtintensität? Lechners Gesetz Die Beziehung zwischen der ins Auge einfallenden Lichtintensität und der vom Auge wahrgenommenen Lichtintensität ist nicht linear, sondern annähernd logarithmisch.

6.6 Das Auge isst mit... Lechners Gesetz (cont.) Folgerung: Kleine Helligkeitsunterschiede in dunklen Regionen sind besser wahrnehmbar als vom Betrag her identische Helligkeitsunterschiede in hellen Regionen.

6.6 Das Auge isst mit... Lechners Gesetz (cont.) Anwendung: Helligkeitsverläufe / Farbverläufe Intensitätssteigerung in äquidistanten Schritten von 12,5% bezogen auf die einfallende Intensität (von 0% bis 100%) → Helligkeitssprung in dunkler Region ist deutlicher als gleiche Sprünge in heller Region → große Unterschiede zwischen wahr- genommenen Intensitätssprüngen Intensitätssteigerung in äquidistanten Schritten bezogen auf die wahrgenommene Intensität → Wahrnehmung nahezu äquidistanter Intensitätssprünge

6.6 Das Auge isst mit... Mach Band-Effekt Die Interaktion der Lichtrezeptoren im Auge betont „scharfe“ Intensitätsänderungen. Sobald das Auge bei der einfallenden Intensität solche Änderungen feststellt, addiert es zusätzlich Unterschwinger und Überschwinger zur wahrgenommenen Intensität, die den Übergang zusätzlich betonen. Dieser unbewußte Mechanismus der Kantenbetonung bei Intensitätsübergängen verhilft unserer visuellen Wahrnehmung zu einer automatischen Konturenschärfe.

6.6 Das Auge isst mit... Mach Band-Effekt (cont.) Beispiel:

6.6 Das Auge isst mit... Mach Band-Effekt (cont.) Beim Rendering ist die automatische Kantenbetonung bei Intensitätsänderungen störend und kann lediglich durch möglichst glatte Intensitätsübergänge reduziert werden. Flat Shading: Unstetige Intensitätswechsel, sehr starke Mach Band-Effekte Gouraud Shading: Stetige Intensitätswechsel, trotzdem abhängig von der Polygonalisierung starke Mach Band-Effekte Phong Shading: Glatte Intensitätswechsel reduzieren Mach Band-Effekte erheblich

6.6 Das Auge isst mit... Mach Band-Effekt (cont.) Entstehung von Mach Band-Effekten beim Gouraud Shading

6.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 Licht zu simulieren Besser: Globale Beleuchtung Sowohl das direkt einfallende Licht als auch reflektiertes und gebrochenes Licht wird in dem zu schattierenden Punkt berücksichtigt

6.7 Globale Beleuchtungsmodelle Zwei verschiedene Ansätze Ray Tracing Ray Casting + Strahlverfolgung für reflektierte und gebrochene Strahlen, Schattenberechnung Abhängig vom Augpunkt Radiosity Trennung von Sichtbarkeitstests und Schattierung Alle Interaktionen des Lichts mit den Objekten der Szene werden vorberechnet Unabhängig vom Augpunkt

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Historie

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Funktionsprinzip „Backward ray-tracing“ (auch „whitted ray tracing“) Da die meisten Lichtstrahlen das Auge nicht treffen, verfolgt man die Strahlen rückwärts vom Auge zur Fläche und dann zu den einzelnen Lichtquellen und weiteren Flächen. Die Strahlen werden von jedem Pixel ausgehend zurück in die Szene verfolgt und bei jedem Schnittpunkt mit einem Objekt werden die direkten sowie die reflektierten und transmittierten Lichtanteile bestimmt. Die auftretende Verzweigungsstruktur impliziert eine Baumstruktur!

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Rekursive Strahlverfolgung opaque object pixel semi-transparent object eye light initial ray surface normal R1 T1 R2 R3 R4 T4 light rays / shadow rays L1 L3 L4 Darstellung durch einen Baum: Knoten: Schnittpunkt mit Fläche Kanten: reflektierte oder gebrochene Strahlen Lichtstrahlen werden an die Knoten geschrieben Eye->Initial ray -> 1 1 -> 2 reflektiert 1 -> 3 gebrochen

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Darstellung als Baum eye R3 R1 R2 T1 T4 R4 L1 L4 Darstellung durch einen Baum: Knoten: Schnittpunkt mit Fläche Kanten: reflektierte oder gebrochene Strahlen Lichtstrahlen werden an die Knoten geschrieben Eye->Initial ray -> 1 1 -> 2 reflektiert 1 -> 3 gebrochen

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Rekursive Strahlverfolgung Abbruch der rekursiven Strahlverfolgung, wenn reflektierte und gebrochene Strahlen kein Objekt mehr schneiden; oder die Strahlenergie unter ein vorgegebenes Kriterium fällt; oder eine vorgegebene maximale Baumtiefe (Rekursionstiefe) erreicht ist; oder nicht mehr genügend Speicher zur Verfügung steht  Bemerkungen Der Rechenaufwand des Verfahrens hängt stark von der Komplexität und Beschaffenheit der betrachteten Szene ab! Erst Raumteilungsverfahren, wie die Octree-Technik, machen Ray-Tracing-Verfahren überhaupt praktikabel.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Schatten Verfolge einen Strahl von einem gefundenen Schnittpunkt zu allen Lichtquellen. Schneidet einer dieser Strahlen ein Objekt, dann liegt der Schnittpunkt im Schatten dieser Lichtquelle. Den direkten Lichtstrahl zwischen einem Oberflächenpunkt und einer Lichtquelle nennt man Schattenfühler (shadow ray, shadow feeler, light ray). L2 L1 P2, nicht im Schatten P1, im Schatten

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Distributed Ray-Tracing In der Realität sind Spiegelungen nie ohne Schleier, denn kein Spiegel ist ganz eben und spiegelt zu 100%. Distribution Ray-Tracing ermöglicht die Erzeugung realistisch unscharfer Effekte beim Ray Tracing. Es wird nun nicht nur ein Strahl mit der Szene geschnitten, sondern auch andere Richtungen berücksichtigt und anschließend die Werte gemittelt.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Distributed Ray-Tracing (cont.) Von vielen Strahlen gehen die meisten in die ausgezeichnete Reflexionsrichtung und einige brechen aus. Die Verteilung sieht dann „birnenförmig“ aus.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Distributed Ray-Tracing (cont.) Ein ähnliches Bild ergibt sich auch bei der Strahlbrechung. Durch stochastische Verteilung über die möglichen Reflexions- bzw. Brechungsrichtungen und Mittelwertbildung erhält man eine realistische Annäherung der Situation.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Distributed Ray-Tracing: (cont.) Flächige Lichtquellen Eine zusätzliche Erhöhung der „Realistik“ ergibt sich, wenn man von der Annahme punktförmiger Lichtquellen abgeht. Um dies darstellen zu können, werden viele Strahlen in Richtung einer Lichtquelle gelegt. Mittels geeigneter stochastischer Strahlen-Verteilung lassen sich realistische Halbschatten erzeugen.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Distributed Ray-Tracing: (cont.) Blendentechnik Photorealistische Bilder entstehen durch Simulation der Blendenöffnung der Kamera. Ein Punkt außerhalb der Schärfeebene wird verschwommen erscheinen. Man erreicht dies durch korrekte Berechnung der Linsenbrechung und stochastischer Verteilung der Strahlen über der Linsenoberfläche.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Adaptives Supersampling Beim adaptiven Supersampling beginnt man bei jedem Pixel mit der Verfolgung der vier Strahlen durch die Pixelecken und des Strahls durch das Pixelzentrum. Liegen die Werte pro Pixel zu sehr auseinander, so unterteile und starte das Verfahren erneut.

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Stochastic Ray-Tracing Loslösung von der starren Unterteilung und stochastisches Vorgehen, z. B. beim Supersampling:

6.7 Globale Beleuchtungsmodelle Ray-Tracing: Eigenschaften + Der physikalische Vorgang der Beleuchtung (Strahlengang) wird sehr gut simuliert + Hervorragend für Spiegelungen geeignet + Das Sichtbarkeitsproblem wird automatisch gelöst + Große Wirklichkeitsnähe – Nicht wirklich für diffuse Reflektion geeignet – Erzeugt „harte“ Bilder – Sehr großer Rechenaufwand – Schnittpunktberechnung sehr aufwendig – Anfälligkeit für numerische Probleme

Modeling transformation 6.8 Rendering-Pipelines Genereller Aufbau: Display traversal Modeling transformation Viewing operation visible-surface determination scan conversion shading image scene model / scene graph front-end (geometry processing) back-end (rasterization)

6.8 Rendering-Pipelines Beispiel: Lokales Beleuchtungsmodell Hier: Gouraud Shading mit z-Buffer modeling transformation db traversal trivial accept / reject lighting viewing transformation rasterization display clipping

6.8 Rendering-Pipelines Beispiel: Lokales Beleuchtungsmodell Hier: Phong Shading mit z-Buffer modeling transformation db traversal trivial accept / reject clipping viewing transformation display rasterization (with lighting)

6.8 Rendering-Pipelines Beispiel: Globales Beleuchtungsmodell Hier: Radiosity mit Gouraud Shading und z-Buffer new db traversal trivial accept / reject clipping viewing transformation display rasterization modeling transformation db traversal vertex intensity calculation using radiosity new db

modeling transformation 6.8 Rendering-Pipelines Beispiel: Globales Beleuchtungsmodell Hier: Ray-Tracing modeling transformation ray tracing display db traversal