Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Computergrafik - Inhalt CG – 6.1 §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung.

Ähnliche Präsentationen


Präsentation zum Thema: "Computergrafik - Inhalt CG – 6.1 §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung."—  Präsentation transkript:

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

2 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

3 6.1 Farbmodelle Hierarchien bekannter Farbmengen Ebener Schnitt durch den drei- dimensionalen Farbraum. Jeder Punkt entspricht einer Farbe. CG – 6.3 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 Farben – i.A. Untermenge von A und Obermenge von B

4 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

5 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 CG – 6.5

6 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

7 6.1 Farbmodelle RGB-Farbmodell (cont.) RGB-Farbwürfel CG – 6.7

8 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

9 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: 0 O H < 360 O Saturation Sättigung: 0 S 1 Verkleinerung addiert Weiß Value Helligkeit: 0 V 1 Verkleinerung addiert Schwarz

10 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: RGBFarbeHSV (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

11 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. CG – 6.11

12 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 CG – 6.12

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

14 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. (CIE xyY-Farbraum) CG – 6.14 und

15 6.1 Farbmodelle CIE-Farbraum (cont.) CG – 6.15 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.

16 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. CG – 6.16

17 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). CG – 6.17 Bildquelle:

18 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! CG – 6.18

19 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

20 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

21 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

22 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

23 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! CG – 6.23

24 6.2 Visibilitätsverfahren Back-Face-Culling (cont.) Klassifikation der Rückseiten Es werden die Normalenvektoren N i aller Flächen betrachtet Bei einer Vorderseite enthält der Normalenvektor N i eine Komponente in Blickrichtung, d. h. es gilt für das Skalarprodukt aus Vektor zum Augpunkt (viewing vector) v und N i : N5N5 N4N4 N6N6 N1N1 N2N2 N3N3 v (Sichtbarkeitsbedingung!) hier: Parallelprojektion CG – 6.24

25 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

26 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

27 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

28 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 m m m m m m m m m m 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 = CG – 6.28

29 6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Beispiel (cont.) Addiere ein Polygon, welches das 1. Polygon schneidet m m m m m m m m m m 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 m m m m m m 2 3 m 5 5 m m m m 2 m 5 m m m m m m m m m m m m m m m = CG – 6.29

30 6.2 Visibilitätsverfahren CG – 6.30

31 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

32 6.2 Visibilitätsverfahren z-Buffer-Algorithmus (cont.) Nachteile Auflösung des z-Buffers bestimmt Diskretisierung der Bildtiefe Beispiel: Bei 20 Bit sind genau 2 20 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 CG – 6.32

33 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... CG – 6.33

34 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!

35 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

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

37 6.2 Visibilitätsverfahren CG – 6.37

38 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

39 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 CG – 6.39

40 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

41 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

42 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

43 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, bis ein Schnittpunkt gefunden wird, der innerhalb der Partition liegt.

44 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

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

46 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

47 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

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

49 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

50 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 CG – 6.50

51 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 CG – 6.51

52 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

53 6.4 Lokale Beleuchtungsmodelle Geometriebetrachtung P CG – 6.53 PPunkt auf Objektoberfläche NFlächennormalenvektor in P, normiert LVektor von P zu einer Punktlichtquelle, normiert VVektor von P zum Augpunkt (Viewing), normiert ϕ i, θ i (lokale) sphärische Koordinaten (von L und V)

54 6.4 Lokale Beleuchtungsmodelle Wiederholung: Reflexionsgesetz, (perfekte) spiegelnde Reflexion R = Vektor des reflektierten Strahls, normiert N L R θθ R2R2 R1R1 Es gilt: L und R liegen in einer Ebene und θ = θ in = θ ref CG – 6.54

55 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 a)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

56 6.4 Lokale Beleuchtungsmodelle CG – 6.56

57 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

58 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

59 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

60 6.4 Lokale Beleuchtungsmodelle Polierte Oberflächen: CG – 6.60

61 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 I i Intensität des einfallenden Lichts θ Winkel zwischen Punktnormale N und Lichtvektor L CG – 6.61

62 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. CG – 6.62

63 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 nsimuliert Perfektionsgrad der Oberfläche ( n heißt perfekter Spiegel, d.h. reflektiertes Licht nur in Richtung R) CG – 6.63

64 6.4 Lokale Beleuchtungsmodelle Spiegelnde Reflexion (cont.) Also: CG – 6.64

65 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! CG – 6.65

66 6.4 Lokale Beleuchtungsmodelle Das Gesamtmodell Im 2D-Schnitt: ambient diffuse specular CG – 6.66

67 6.4 Lokale Beleuchtungsmodelle Beispiel k a konstant zunehmendes k s zunehmendes n CG – 6.67

68 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 RV jetzt NH, das sich auf die gleiche Art und Weise wie RV verhält. Damit ergibt sich: CG – 6.68 Blinn-Modell

69 6.4 Lokale Beleuchtungsmodelle Das mathematische Modell (mit Farbe) Für farbige Objekte (Lichtquellen) wird das Modell getrennt auf die Farbkomponenten I r, I g, I b angewendet: CG – 6.69 mit k dr, k dg, k db modellieren die Farbe des Objektes k sr, k sg, k sb modellieren die Farbe der Lichtquelle (für weißes Licht ist k sr = k sg = k sb ) k ar, k ag, k ab modellieren die Farbe des Umgebungslichtes

70 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 k sr, k sg, k sb ). CG – 6.70

71 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

72 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

73 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 CG – 6.73

74 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. N 1, N 2, N 3, N 4,...) Als ausgewählte Punkte werden z. B. die Polygonschwerpunkte oder der Einfachheit wegen Polygoneckpunkte gewählt. CG – 6.74

75 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, 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

76 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. N A,...) Eine Eckpunktnormale entsteht aus (gewichteter) Mittelung der Polygonnormalen aller angrenzenden Polygone mit entsprechendem gemeinsamen Eckpunkt. (Normalisierung nicht vergessen!) CG – 6.76

77 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. P 1 (x 1,y 1 ) P 2 (x 2,y 2 ) P 3 (x 3,y 3 ) P 4 (x 4,y 4 ) P b (x b,y s ) P a (x a,y s ) P s (x s,y s ) CG – 6.77

78 6.5 Interpolative Schattierungstechniken Gouraud and Phong Shading (cont.): Bilineare Interpolation 0.Schritt:Werte W(P 1 ), W(P 2 ), W(P 3 ), W(P 4 ) bestimmen 1.Schritt:Schnittpunkte Scanline mit Polygonkanten P a und P b bestimmen 2.Schritt:Werte W(P a ), W(P b ) bestimmen 3.Schritt:Wert W(P s ) bestimmen P 1 (x 1,y 1 ) P 2 (x 2,y 2 ) P 3 (x 3,y 3 ) P 4 (x 4,y 4 ) P b (x b,y s ) P a (x a,y s ) P s (x s,y s ) CG – 6.78

79 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

80 6.5 Interpolative Schattierungstechniken CG – 6.80 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

81 6.5 Interpolative Schattierungstechniken CG – 6.81 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.

82 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

83 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 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.

84 6.5 Interpolative Schattierungstechniken Flat, Gouraud und Phong Shading im Vergleich CG – 6.84

85 Flat, Gouraud und Phong Shading im Vergleich 6.5 Interpolative Schattierungstechniken Flat-ShadingGouraud-ShadingPhong-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

86 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

87 6.5 Interpolative Schattierungstechniken Beispiel: Wireframe-Darstellung / Flat Shading CG – 6.87 WireframeFlat Shading

88 6.5 Interpolative Schattierungstechniken Beispiel: Gouraud / Phong Shading CG – 6.88 Gouraud ShadingPhong Shading

89 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

90 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

91 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 CG – 6.91

92 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

93 6.6 Das Auge isst mit... Mach Band-Effekt (cont.) Beispiel: CG – 6.93

94 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

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

96 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

97 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

98 6.7 Globale Beleuchtungsmodelle Ray-Tracing: Historie CG – 6.98

99 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

100 6.7 Globale Beleuchtungsmodelle Ray-Tracing: Rekursive Strahlverfolgung opaque object pixel semi-transparent object eye light initial ray surface normal R1R1 T1T1 R2R2 R3R3 R4R4 T4T4 light rays / shadow rays L1L1 L3L3 L4L4 CG – 6.100

101 6.7 Globale Beleuchtungsmodelle Ray-Tracing: Darstellung als Baum eye R3R3 R1R1 R2R2 T1T1 T4T4 R4R4 L1L1 L4L4 CG – 6.101

102 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

103 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). L2L2 L1L1 P 2, nicht im Schatten P 1, im Schatten CG – 6.103

104 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

105 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

106 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

107 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

108 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

109 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

110 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

111 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

112 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) CG – 6.112

113 6.8 Rendering-Pipelines Beispiel: Lokales Beleuchtungsmodell Hier: Gouraud Shading mit z-Buffer modeling transformation db traversal trivial accept / reject lighting viewing transformation rasterizationdisplayclipping CG – 6.113

114 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) CG – 6.114

115 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 CG – 6.115

116 6.8 Rendering-Pipelines Beispiel: Globales Beleuchtungsmodell Hier: Ray-Tracing modeling transformation ray tracingdisplay db traversal CG – 6.116


Herunterladen ppt "Computergrafik - Inhalt CG – 6.1 §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung."

Ähnliche Präsentationen


Google-Anzeigen