Computergrafik - Inhalt CG – 6.1 §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen...
-
Upload
amalia-aegerter -
Category
Documents
-
view
108 -
download
0
Transcript of Computergrafik - Inhalt CG – 6.1 §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen...
Computergrafik - Inhalt
CG – 6.1
§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
CG – 6.2
6.1 Farbmodelle
Hierarchien bekannter FarbmengenEbener Schnitt durch den drei-dimensionalen Farbraum. JederPunkt entspricht einer Farbe.
CG – 6.3
A: Menge aller vom Menschenwahrnehmbaren Farben
B: Menge aller von einemAusgabegerät (z.B. Monitor)darstellbaren Farben – dies isteine Untermenge von A
C: Menge aller von einem Programmspezifizierbaren Farben – beschränktdurch 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.
CG – 6.4
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 Bexakt 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
CG – 6.5
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!
CG – 6.6
6.1 Farbmodelle
RGB-Farbmodell (cont.) RGB-Farbwürfel
CG – 6.7
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
CG – 6.8
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“
CG – 6.9
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)
(0, 1, 1) Cyan (180, 1, 1)
(0, 0, 1) Blau (240, 1, 1)
(1, 0, 1) Magenta (300, 1, 1)
CG – 6.10
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 einenSub-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.
CG – 6.11
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 durchC = X X + Y Y + Z Z
CG – 6.12
6.1 Farbmodelle
CIE-Farbraum (cont.)
Von einem Monitordarstellbare Farben
CIE XYZ Farbkörper: enthältalle wahrnehmbaren Farben
CG – 6.13
6.1 Farbmodelle
CIE-Farbraum (cont.) Eine alternative Spezifikation des CIE XYZ-
Farbtripels (X, Y, Z) ergibt sich durch eineAbbildung (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.
x XX Y Z
y YX Y Z
(CIE xyY-Farbraum)
CG – 6.14
und
6.1 Farbmodelle
CIE-Farbraum (cont.)
CG – 6.15
Das (x, y)-Diagramm enthält (als 2D-Projektion der EbeneX+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 derRealitä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.
CG – 6.16
6.1 Farbmodelle
Gamma-Korrektur (cont.) Bei der Darstellung von Szenen in der
Computergrafik übernimmt ein Renderer die Rolleder 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).
CG – 6.17
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 mussnicht planar sein!
CG – 6.18
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!
CG – 6.19
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
CG – 6.20
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.:
CG – 6.21
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
CG – 6.22
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 werdennicht mehr dargestellt!
CG – 6.23
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 : v N i 0
N5
N4
N6N1
N2
N3
v N1
0
v N2
0
v N3
0
v N4
0
v N5
0
v N6
0
v
(Sichtbarkeitsbedingung!)
hier: Parallelprojektion
CG – 6.24
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!
CG – 6.25
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.
CG – 6.26
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.
CG – 6.27
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
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
5
5
5
5
5
5
5
m
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
m
m
m
m
m
5
5
m
m
m
m
m
m
5
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
+ =
CG – 6.28
6.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Beispiel (cont.)
Addiere ein Polygon, welches das 1. Polygon schneidet
5
5
5
5
5
5
5
m
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
m
m
m
m
m
5
5
m
m
m
m
m
m
5
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
5
5
5
5
5
6
7
m
5
5
5
5
5
5
6
m
5
5
5
5
5
4
5
m
5
5
5
5
2
3
4
m
5
5
5
m
m2
3
m
5
5
m
m
m
m2
m
5
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
2
3
4
5
6
7
2
3
4
5
6
2
3
4
5
2
3
4
2
3 2
+ =
CG – 6.29
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) – dxA/C
Nur eine Subtraktion notwendig, da A/C konstant ist und dx=1!
CG – 6.30
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)
CG – 6.31
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 Antialiasingnur durch aufwendige Modifikationen möglich
CG – 6.32
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
InitialisierungFür alle Polygone
Für alle Rasterzeilen im Polygon...
Scan-Line z-BufferFür alle Rasterzeilen
InitialisierungFür alle Polygone
...
CG – 6.33
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
Eye
Pixel
CG – 6.34
Bildraumverfahren!
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:
CG – 6.35
2 2 0x m r ‖ ‖
( )s t e tv
2 2 0e tv m r ‖ ‖
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.
CG – 6.36
2 2
2
2
2 2
0
( )·( ) 0
( ) ( ) · ( ) ( ) 0
· 2 ·( ) ( )·( ) 0
e tv m
e tv m e tv m r
tv e m tv e m
r
r
t v tv e m e m e m rv
‖ ‖
1,2 1,2 1,2( ·)s s t e t v
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.
CG – 6.37
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!
CG – 6.38
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 immerbei 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
CG – 6.39
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.
CG – 6.40
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
CG – 6.41
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
CG – 6.42
6.2 Visibilitätsverfahren
Ray Casting (cont.) Raumteilung (cont.)
Notwendig: Testen, ob der berechnete Schnittpunkt innerhalb der aktuellen Partition liegt!
CG – 6.43
Abhilfe: Alle Partitionen solange weiterverfolgen, bisein 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
CG – 6.44
6.3 Beleuchtung und Schattierung
Die Grundbestandteile des Renderprozesses
Oberfläche
Reflektion/Transmission/Emission
EmissionAtmosphärische Streuung
CG – 6.45
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.
CG – 6.46
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!
CG – 6.47
6.3 Beleuchtung und Schattierung
Illumination model (cont.) Mit dem Zusatz local ~ (cont.)
A B
direkt direkt
indirekt
CG – 6.48
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!
CG – 6.49
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 techniquesz.B. Flat shading, Gouraud shading, Phong
shading
CG – 6.50
6.3 Beleuchtung und Schattierung
Gängige Praxis-Kombination
Weltkoordinaten Bildschirmkoordinaten
Local reflection model:berechnet die Lichtintensität anjedem Punkt P auf der Oberflächeeines Objektes
Interpolative shading algorithm:interpoliert Pixelintensitäten I aus berechneten Lichtintensitätenin den Polygonecken
CG – 6.51
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
CG – 6.52
6.4 Lokale Beleuchtungsmodelle
Geometriebetrachtung
P
CG – 6.53
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
LRθ θ R2
R1
Es gilt:L und R liegen in einer Ebeneund θ = θin = θref
CG – 6.54
2 1
2 2 2
· )
2
2(
R R
N N L
R
R R L R L
L
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änomenea) 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
CG – 6.55
6.4 Lokale Beleuchtungsmodelle
CG – 6.56
6.4 Lokale Beleuchtungsmodelle
Das Modell simuliert folgende physikalische Reflexionsphänomene (cont.)b) 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
CG – 6.57
6.4 Lokale Beleuchtungsmodelle
Das Modell simuliert folgende physikalische Reflexionsphänomene (cont.)c) 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
CG – 6.58
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)
CG – 6.59
6.4 Lokale Beleuchtungsmodelle
Polierte Oberflächen:
CG – 6.60
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
I kdI
d k
sI
s k
aI
a
kd k
s k
a1
kdI
d
IdI
icos
CG – 6.61
6.4 Lokale Beleuchtungsmodelle
Diffuse Reflexion (cont.)
Also:
Die diffuse Komponente desPhong-Modells modelliertdas 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.
CG – 6.62
( · )d i
I I L N
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 Rn simuliert Perfektionsgrad der Oberfläche
(n → ∞ heißt perfekter Spiegel, d.h. reflektiertes Licht
nur in Richtung R)
ksI
s
IsI
icosn()
CG – 6.63
6.4 Lokale Beleuchtungsmodelle
Spiegelnde Reflexion (cont.)
Also: cos ( )ns iI I
n=1
0
0,2
0,4
0,6
0,8
1
n=5
0
0,2
0,4
0,6
0,8
1
n=10
0
0,2
0,4
0,6
0,8
1
n=50
CG – 6.64
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 realenAbhängigkeit von Spiegelungenvon der Ausrichtung des Lichtvektors!
Gravierender Mangel des Models!
CG – 6.65
( · )n
s iI I R V
6.4 Lokale Beleuchtungsmodelle
Das Gesamtmodell
Im 2D-Schnitt:
ambient
diffuse
specular
CG – 6.66
( ( ( )· ) · )
d d s s a a
ni d s a a
I k k I k I
I k
I
N k VL k IR
6.4 Lokale Beleuchtungsmodelle
Beispiel
ka konstant
zunehmendes ks
zunehmend
es n
CG – 6.67
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:
CG – 6.68
Blinn-Modell
( ( · · ) )) ( n
i d s a aN kI I k HL N Ik
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:
CG – 6.69
mit
kdr, kdg, kdb modellieren die Farbe des Objektesksr, ksg, ksb modellieren die Farbe der Lichtquelle
(für weißes Licht ist ksr = ksg = ksb)kar, kag, kab modellieren die Farbe des
Umgebungslichtes
( ( ( )
( ( ( )
( ( (
· ) · )
· ) · )
· ) · ) )
nr i dr sr ar a
ni dg sg ag a
ni db sb a
g
ab b
N k H
N k
I I k L N k I
I I k L N k I
I I k L NN I
H
k kH
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).
CG – 6.70
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
CG – 6.71
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!
CG – 6.72
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 Unterscheidungzwischen (dreidimensionalem)Objektraum und(zweidimensionalem) Bildraum!
Weltkoordinaten Bildschirmkoordinaten
CG – 6.73
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.
CG – 6.74
6.5 Interpolative Schattierungstechniken
CG – 6.75
Flat Shading (cont.) Einfaches, kostengünstiges Verfahren,
Interpolation findet nicht statt Kanten in Polygonnetzen bleiben bei
der Darstellung sichtbar, Objektewerden facettiert dargestellt,unstetiger Intensitätsverlauf überdie Polygonkanten
„Runde“ Objekte nur durch extremhohe Polygonanzahl Geht dies auch anders?
Anwendung für Voransicht, Entwurfsansicht, aber auchMobile 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 einergekrü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!) CG – 6.76
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)
CG – 6.77
6.5 Interpolative Schattierungstechniken
Gouraud and Phong Shading (cont.):Bilineare Interpolation0. Schritt: Werte W(P1), W(P2), W(P3), W(P4) bestimmen
1. Schritt: Schnittpunkte Scanline mit PolygonkantenPa und Pb bestimmen
2. Schritt: Werte W(Pa), W(Pb) bestimmen
3. Schritt: Wert W(Ps) bestimmenP1(x1,y1)
P2(x2,y2)
P3(x3,y3)
P4(x4,y4)
Pb(xb,ys)Pa(xa,ys)
Ps(xs,ys)
W (Pa) 1y2 y1
(W (P1)(y2 ys)W (P2)(ys y1))
W (Pb) 1y4 y1
(W (P1)(y4 ys)W (P4)(ys y1))
W (Ps ) 1
xb xa
(W (Pa )(xb xs )W (Pb)(xs xa ))
CG – 6.78
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.
CG – 6.79
6.5 Interpolative Schattierungstechniken
CG – 6.80
Gouraud Shading (cont.) Kanten in Polygonnetzen werden
geglättet, der Intensitätsverlauf überdie Polygonkanten ist stetig,aber nicht wirklich glatt
→ Anfälligkeit des Verfahrens für Mach-Band-Effekte
Verfahren kann Highlights nichtangemessen darstellen Diese können nur entstehen, falls
die Betrachtungsrichtung naheder Reflexionsrichtung liegt; dasBeleuchtungsmodell wird abernur in den Eckpunkten ausgewertet
Highlights werden durch Abtastfehler „verschluckt“
6.5 Interpolative Schattierungstechniken
CG – 6.81
Gouraud Shading (cont.) Da Highlights i.d.R. sowieso
verschluckt werden, ist eineKombination von Gouraud Shadingund einem Beleuchtungsmodellmit ausschließlich diffuserReflexionskomponente gängig.
Bemerkung:Gouraud Shading wird alsStandard-Schattierungsverfahrenvon heutiger Graphikhardwareeffizient 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!)
CG – 6.82
6.5 Interpolative Schattierungstechniken
CG – 6.83
Phong Shading (cont.) Intensitätsverlauf über die
Polygonkanten ist stetig und glatt;das Erscheinungsbild der realen,gekrümmten Oberfläche wird durchdie Wahl der interpolierten Normalen gut angenähert
Äußerst rechenaufwendigesVerfahren!
Highlights werden adäquatdargestellt
Bemerkung:Phong Shading wird vonheutiger high-end Graphikhardware unterstützt.
6.5 Interpolative Schattierungstechniken
Flat, Gouraud und Phong Shading im Vergleich
CG – 6.84
Flat, Gouraud und Phong Shading im Vergleich
6.5 Interpolative Schattierungstechniken
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
CG – 6.85
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!)
CG – 6.86
6.5 Interpolative Schattierungstechniken
Beispiel: Wireframe-Darstellung / Flat Shading
CG – 6.87
Wireframe Flat Shading
6.5 Interpolative Schattierungstechniken
Beispiel: Gouraud / Phong Shading
CG – 6.88
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.
CG – 6.89
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.
CG – 6.90
6.6 Das Auge isst mit...
Lechners Gesetz (cont.) Anwendung: Helligkeitsverläufe / Farbverläufe
Intensitätssteigerung in äquidistantenSchritten von 12,5% bezogen auf dieeinfallende Intensität (von 0% bis 100%)
→ Helligkeitssprung in dunkler Regionist deutlicher als gleiche Sprüngein heller Region
→ große Unterschiede zwischen wahr-genommenen Intensitätssprüngen
Intensitätssteigerung in äquidistantenSchritten bezogen auf diewahrgenommene Intensität
→ Wahrnehmung nahezu äquidistanter Intensitätssprünge
CG – 6.91
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.
CG – 6.92
6.6 Das Auge isst mit...
Mach Band-Effekt (cont.) Beispiel:
CG – 6.93
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
CG – 6.94
6.6 Das Auge isst mit...
Mach Band-Effekt (cont.) Entstehung von Mach Band-Effekten beim Gouraud
Shading
CG – 6.95
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
CG – 6.96
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
CG – 6.97
6.7 Globale Beleuchtungsmodelle
Ray-Tracing: Historie
CG – 6.98
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!
CG – 6.99
6.7 Globale Beleuchtungsmodelle
Ray-Tracing: Rekursive Strahlverfolgung
opaque object
pixel
semi-transparent objecteye
light
initial ray
surface normal
R1
T1
R2
R3
R4
T4
light rays / shadow raysL1
L3
L4
CG – 6.100
6.7 Globale Beleuchtungsmodelle
Ray-Tracing: Darstellung als Baum
eye
R3
R1
R2
T1
T4R4
L1
L4
CG – 6.101
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.
CG – 6.102
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 manSchattenfühler (shadow ray, shadow feeler, light ray).
L2L1
P2, nicht im Schatten
P1, im SchattenCG – 6.103
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.
CG – 6.104
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.
CG – 6.105
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.
CG – 6.106
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.
CG – 6.107
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.
CG – 6.108
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.
CG – 6.109
6.7 Globale Beleuchtungsmodelle
Ray-Tracing: Stochastic Ray-Tracing Loslösung von der starren Unterteilung und
stochastisches Vorgehen, z. B. beim Supersampling:
CG – 6.110
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
CG – 6.111
6.8 Rendering-Pipelines
Genereller Aufbau:
Displaytraversal
Modelingtransformation
Viewingoperation
visible-surface determinationscan conversionshading
image
scene model /scene graph
front-end(geometryprocessing)
back-end(rasterization)
CG – 6.112
6.8 Rendering-Pipelines
Beispiel: Lokales Beleuchtungsmodell Hier: Gouraud Shading mit z-Buffer
modelingtransformation
dbtraversal
trivialaccept / reject lighting
viewingtransformation rasterization displayclipping
CG – 6.113
6.8 Rendering-Pipelines
Beispiel: Lokales Beleuchtungsmodell Hier: Phong Shading mit z-Buffer
modelingtransformation
dbtraversal
trivialaccept / reject
clipping
viewingtransformation
displayrasterization(with lighting)
CG – 6.114
6.8 Rendering-Pipelines
Beispiel: Globales Beleuchtungsmodell Hier: Radiosity mit Gouraud Shading und z-Buffer
new dbtraversal
trivialaccept / reject
clipping
viewingtransformation
displayrasterization
modelingtransformation
dbtraversal
vertex intensitycalculation using
radiosity
newdb
CG – 6.115
6.8 Rendering-Pipelines
Beispiel: Globales Beleuchtungsmodell Hier: Ray-Tracing
modelingtransformation ray tracing displaydb traversal
CG – 6.116