Inhalt und neuer Zeitplan - tu-ilmenau.de · •Double Buffering Wiederholung Computergrafik 1...

59
M.Sc . Tristan Nauber Computergrafik Zusammenfassung 1 20 18 - 10 - 26 Inhalt und neuer Zeitplan Einführung in OpenGL 3.x • Initialisierung • Clearing •Farb und Tiefenpuffer •Double Buffering Wiederholung Computergrafik 1 •Geometrie Grundlagen •Farbmodelle •Lichtausbreitung • Phong Beleuchtungsmodell Wiederholung Computergrafik 1 • Bidirektionale Reflexionsverteilung •Ray Tracing • Texture Mapping Geometrie in OpenGL • Hochladen von Vertexdaten • Primitivdefinitionen •Zeichnen im Screen Space •Vertex Attribute 1. Übungsblatt • Anwendung der eingeführten Konzepte aus Übung 0 und 1 2. Übungsblatt •Performanzanalysen verschiedener Renderingmethoden Shader • Erzeugung von OpenGL Shadern GLSL Programmierung 3. Übungsblatt •Vertex/Fragment Manipulation Einfache Farbeffekte Beleuchtung Kontrollfluss 12.10.2018 19.10.2018 26.10.2018 02.11.2018 09.11.2018 16.11.2018 23.11.2018 30.11.2018

Transcript of Inhalt und neuer Zeitplan - tu-ilmenau.de · •Double Buffering Wiederholung Computergrafik 1...

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 12018-10-26

Inhalt und neuer Zeitplan

Einführung in OpenGL 3.x

• Initialisierung•Clearing•Farb und Tiefenpuffer•Double Buffering

Wiederholung Computergrafik 1

•Geometrie Grundlagen

•Farbmodelle•Lichtausbreitung•PhongBeleuchtungsmodell

Wiederholung Computergrafik 1

•Bidirektionale Reflexionsverteilung

•Ray Tracing•Texture Mapping

Geometrie in OpenGL

•Hochladen von Vertexdaten

•Primitivdefinitionen•Zeichnen im Screen Space

•Vertex Attribute

1. Übungsblatt

•Anwendung der eingeführten Konzepte aus Übung 0 und 1

2. Übungsblatt

•Performanzanalysenverschiedener Renderingmethoden

Shader

•Erzeugung von OpenGL ShadernGLSL Programmierung

3. Übungsblatt

•Vertex/Fragment ManipulationEinfache FarbeffekteBeleuchtungKontrollfluss

12.10.2018 19.10.2018 26.10.2018 02.11.2018

09.11.2018 16.11.2018 23.11.2018 30.11.2018

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 22018-10-26

Inhalt und neuer Zeitplan

3D Rendering

•Perspektivisches Rendering

•Kamera-transformationen

•3D-Vertex-Manipulation

4. Übungsblatt

•3D Rendering•Kamerafahrten/ Steuerung

•Culling

Framebuffer Objects und Texturen

•OpenGL ImplementierungOffscreen-RenderingMulti-Rendertargets

5. Übungsblatt

•Post-ProcessingErweiterte FarbmanipulationenEdge-DetectionBloom

6. Übungsblatt

•Shadow-Mapping•Soft Shadows•G-Buffer•Deferred Shading

Freie Übung

•Screen Space Effects

•Screen spaceReflections

•God Rays•Ambient Occlusion

Klausurvorbereitung

07.12.2018 14.12.2018 21.12.2018 11.01.2019

18.01.2019 25.01.2019 01.02.2019

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 32018-10-26

Computergrafik Zusammenfassung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 42018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 52018-10-26

[2]

Grundlagen der Geometrie

Kartesische Koordinatensystem

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 62018-10-26

Vektoren • besitzt reellwertige Koordinaten• Anzahl der Koordinaten bestimmt Dimension• Schreibweise:

• bei der Transposition 𝑇𝑇 werden aus Zeilen die Spalten bzw. umgekehrt

• vereinfachte Schreibweise für Vektoren im 3D-Koordinatensystem: �⃗�𝑣 = 𝑥𝑥, 𝑦𝑦, 𝑧𝑧

Grundlagen der Geometrie

Zeilenvektor: Spaltvektor:

�⃗�𝑣 = 𝑣𝑣1, 𝑣𝑣2, … , 𝑣𝑣𝑛𝑛 �⃗�𝑣𝑇𝑇 =𝑣𝑣1𝑣𝑣2…𝑣𝑣𝑛𝑛

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 72018-10-26

Rechenregeln für Vektoren • Addition zweier Vektoren ergibt wieder einen Vektor:

• �⃗�𝑎 + 𝑏𝑏 = 𝑎𝑎1 + 𝑏𝑏1, 𝑎𝑎2+𝑏𝑏2, … , 𝑎𝑎n+𝑏𝑏𝑛𝑛

• Multiplikation eines Vektor mit skalarer Größe ergibt wieder einen Vektor:• s⋅ �⃗�𝑎 = 𝑠𝑠 ⋅ 𝑎𝑎1, 𝑠𝑠 ⋅ 𝑎𝑎2 , … , 𝑠𝑠 ⋅ 𝑎𝑎𝑛𝑛

• Skalarprodukt

• �⃗�𝑎 ⋅ 𝑏𝑏 = 𝑎𝑎1 ⋅ 𝑏𝑏1 + 𝑎𝑎2⋅ 𝑏𝑏2 + ⋯+ 𝑎𝑎n⋅ 𝑏𝑏𝑛𝑛• �⃗�𝑎 ⋅ 𝑏𝑏 = �⃗�𝑎 𝑏𝑏 cos 𝜑𝜑

• cos 𝜑𝜑 = 𝑎𝑎⋅𝑏𝑏𝑎𝑎 𝑏𝑏

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 82018-10-26

Rechenregeln für Vektoren • Kreuzprodukt

• �⃗�𝑎×𝑏𝑏 =𝑎𝑎1𝑎𝑎2𝑎𝑎3

×𝑏𝑏1𝑏𝑏2𝑏𝑏3

= 𝑎𝑎2𝑏𝑏3 − 𝑎𝑎3𝑏𝑏2𝑎𝑎3𝑏𝑏1 − 𝑎𝑎1𝑏𝑏3𝑎𝑎1𝑏𝑏2 − 𝑎𝑎2𝑏𝑏1

• bestimmt Vektor der senkrecht auf der von �⃗�𝑎 und 𝑏𝑏 aufgespannten Ebene steht

• die Länge �⃗�𝑎×𝑏𝑏 ist gleich der Fläche des aufgespannten Parallelogramms

• es gilt:

• �⃗�𝑎×𝑏𝑏 = �⃗�𝑎 ⋅ 𝑏𝑏 ⋅ sin 𝜃𝜃

• sin 𝜃𝜃 = 𝑎𝑎×𝑏𝑏𝑎𝑎 𝑏𝑏

Grundlagen der Geometrie

[3]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 92018-10-26

Matrizen • Matrizen sind Tupel von Vektoren• eine nxm-Matrix besitzt n Zeilenvektoren und m Spaltenvektoren• Beispiel: die 3 x 4 Matrix A

𝐴𝐴 =𝑎𝑎11 𝑎𝑎12 𝑎𝑎13 𝑎𝑎14𝑎𝑎21 𝑎𝑎22 𝑎𝑎23 𝑎𝑎24𝑎𝑎31 𝑎𝑎32 𝑎𝑎33 𝑎𝑎34

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 102018-10-26

Matrixmultiplikation - Matrix mal Vektor • Vektor als Spaltenvektor• Matrix steht bei Multiplikation mit einem Spaltvektor immer links vom Vektor

𝑎𝑎11 𝑎𝑎12 𝑎𝑎13 𝑎𝑎14𝑎𝑎21 𝑎𝑎22 𝑎𝑎23 𝑎𝑎24𝑎𝑎31 𝑎𝑎32 𝑎𝑎33 𝑎𝑎34

𝑏𝑏1𝑏𝑏2𝑏𝑏3𝑏𝑏4

=𝑐𝑐1𝑐𝑐2𝑐𝑐3

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 112018-10-26

Matrixmultiplikation - Matrix mal Matrix • Multiplikation zweier Matrizen ergibt wieder eine Matrix

𝑎𝑎11 𝑎𝑎12 𝑎𝑎13 𝑎𝑎14𝑎𝑎21 𝑎𝑎22 𝑎𝑎23 𝑎𝑎24𝑎𝑎31 𝑎𝑎32 𝑎𝑎33 𝑎𝑎34

𝑏𝑏11 𝑏𝑏12𝑏𝑏21 𝑏𝑏22𝑏𝑏31 𝑏𝑏32𝑏𝑏41 𝑏𝑏42

=𝑐𝑐11 𝑐𝑐12𝑐𝑐21 𝑐𝑐22𝑐𝑐31 𝑐𝑐32

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 122018-10-26

Einheitsmatrix E und Inverse 𝐀𝐀−𝟏𝟏

• die Einheitsmatrix E ist eine quadratische Matrix welche nur in der Diagonalen Einsen als Koeffizienten enthält, der Rest enthält Null als Wert

𝐸𝐸 =1 0 00 1 00 0 1

• die Multiplikation einer Einheitsmatrix mit einem Vektor lässt den Vektor unverändert• gleiches gilt für die Multiplikation mit einer Matrix• die Inverse einer Matrix A wird als A−1 notiert und ist definiert durch:

𝐴𝐴 ⋅ 𝐴𝐴−1 = 𝐸𝐸

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 132018-10-26

Matrizen - Multiplikationsregeln • Transposition von Matrizen:

𝐴𝐴 ⋅ 𝐵𝐵 𝑇𝑇 = 𝐵𝐵𝑇𝑇 ⋅ 𝐴𝐴𝑇𝑇

• Assoziativität:𝐴𝐴 ⋅ 𝐵𝐵 ⋅ 𝐶𝐶 = 𝐴𝐴 ⋅ 𝐵𝐵 ⋅ 𝐶𝐶

• Inversion:𝐴𝐴 ⋅ 𝐵𝐵 −1 = 𝐵𝐵−1 ⋅ 𝐴𝐴−1

• keine Kommutativität:𝐴𝐴 ⋅ 𝐵𝐵 ≠ 𝐵𝐵 ⋅ 𝐴𝐴

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 142018-10-26

Matrizentransformation • Translation:

𝑇𝑇(Δ𝑥𝑥,Δ𝑦𝑦,Δ𝑧𝑧) =

1 0 0 Δ𝑥𝑥0 1 0 Δ𝑦𝑦0 0 1 Δ𝑧𝑧0 0 0 1

• Skalierung:

𝑆𝑆(𝐹𝐹x,𝐹𝐹y,𝐹𝐹z) =

𝐹𝐹x 0 0 00 𝐹𝐹y 0 00 0 𝐹𝐹z 00 0 0 1

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 152018-10-26

Matrizentransformation - Rotation

Rotation um die Z-Achse: 𝑅𝑅𝑧𝑧𝜃𝜃 =

cos 𝜃𝜃 − sin 𝜃𝜃 0 0sin 𝜃𝜃 cos 𝜃𝜃 0 0

0 0 1 00 0 0 1

Rotation um die X-Achse: 𝑅𝑅𝑥𝑥𝜃𝜃 =

1 0 0 00 cos 𝜃𝜃 − sin 𝜃𝜃 00 sin 𝜃𝜃 cos 𝜃𝜃 00 0 0 1

Rotation um die Y-Achse: 𝑅𝑅𝑦𝑦𝜃𝜃 =

cos 𝜃𝜃 0 sin 𝜃𝜃 00 1 0 0

−sin 𝜃𝜃 0 cos 𝜃𝜃 00 0 0 1

Grundlagen der Geometrie

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 162018-10-26

Nicht-Kommutativität bei Matrizenrotation

𝑅𝑅𝑦𝑦 (90) + 𝑅𝑅𝑧𝑧 (−90) ≠ 𝑅𝑅𝑧𝑧 −90 + 𝑅𝑅𝑦𝑦 (90)

Grundlagen der Geometrie

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 172018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 182018-10-26

Allgemein • Farbmodelle dienen der Beschreibung Farben• handelt sich um 3D-Modelle welche möglichst alle Farben der Natur nachbilden• Herleitung durch verschiedene Ansätze:

• Phänomenologische Betrachtung:• Hell und Farbempfinden als Sinneseindruck

• Physiologie des menschlichen visuellen Systems:• betrachtet Rezeptoren des Auges und neuronale Verschaltung

• Physik:• Licht als Elektromagnetische Strahlung• Berücksichtigung von Strahlungsleistung, Wellenlänge und Spektrum

Farbmodelle

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 192018-10-26

HSL/HSB/HSV/HSI• Hell- und Farbempfinden als Sinneseindruck beschreiben:

• Farbton (Hue):

• Sättigung (Saturation):

• Helligkeit (Lightness/Brightness/Value/Intensity):

Farbmodelle

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 202018-10-26

HSL/HSB/HSV/HSI• dreidimensionale Beschreibung:

Farbmodelle

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 212018-10-26

RGB-Farbraum • nach menschlichen visuellen System inspiriert (Rezeptoren des Auges)• Rot (Red)• Grün (Green)• Blau (Blue)• Additiver Farbraum, Farbwahrnehmung aus mischen der drei Grundfarben

Farbmodelle

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 222018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 232018-10-26

Grundeigenschaften• Licht als Strahlungsenergie und räumliche Ausbreitung• Licht breitet sich in Räumen mit einheitlichen Brechungsindex gradlinig von einer

Quelle zum Ziel aus• Richtung des Lichtes ändert sich beim Übergang zwischen Körpern mit

unterschiedlichen Brechungsindex• Reflexion und Streuung an Schichtübergängen bzw. Oberflächen• lokale Lichtsimulation:

• Beleuchtungseffekte durch Lichtquelle auf einzelnes Objekt• globale Lichtsimulation:

• Wechselwirkung zwischen Objekten einer Szene wird berücksichtigt• Beispiele: Schattenwurf, indirekte Beleuchtung

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 242018-10-26

Huygenssches Prinzip• jeder Punkt auf einer Wellenfront ist selbst wieder ein Ausgangspunkt einer neuen

Welle• Licht als elektromagnetische Energie, hat somit Eigenschaften einer Welle:

• somit lässt sich Beugung am Spalt und Brechung erklären

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 252018-10-26

Reflexionsarten• nach dem Auftreffen auf eine Oberfläche wird Strahlung unterschiedlich stark und auf

unterschiedliche Weise reflektiert

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 262018-10-26

Spekuläre (gestreut spiegelnde) Reflexion• Speckles (Fleckchen): sind „ideal“ Spiegelungen (Einfallswinkel = Ausfallswinkel)• Streuung des Lichtes neben der idealen Spiegelung• je größer der Winkel zum Betrachter desto schwächer die Reflektion

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 272018-10-26

Phong-Beleuchtungsmodell• berechnet die Beleuchtung von 3D-Objekten• eignet sich zur Darstellung von glatten, plastikähnlichen Oberflächen• baut nicht auf physikalischen Grundlagen auf • widerspricht dem Energieerhaltungssatz• Reflexion des Lichts = ambienter + ideal diffuser + ideal spiegelnder Reflexion

Lichtausbreitung

[4]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 282018-10-26

Phong-Beleuchtungsmodell• 𝐼𝐼out = 𝐼𝐼ambient + 𝐼𝐼diffus + 𝐼𝐼specular

• Ambiente Komponente:• 𝐼𝐼ambient = 𝐼𝐼a ⋅ 𝑘𝑘am𝑏𝑏𝑏𝑏𝑏𝑏𝑛𝑛𝑏𝑏• 𝐼𝐼a = Intensität des Umgebungslicht• 𝑘𝑘am𝑏𝑏𝑏𝑏𝑏𝑏𝑛𝑛𝑏𝑏= Materialkonstante

• Diffuse Komponente:• 𝐼𝐼diffus = 𝐼𝐼in ⋅ 𝑘𝑘diffus ⋅ cos 𝜑𝜑• 𝐼𝐼in = Lichtstärke des einfallenden Lichtstrahls der Punktlichtquelle• 𝑘𝑘diffus= empirisch bestimmter Reflexionsfaktor • 𝜑𝜑 = Winkel zwischen Obeflächennormale und Richtung des einfallenden Lichtstrahls

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 292018-10-26

Phong-Beleuchtungsmodell• Spiegelnde Komponente:

• 𝐼𝐼specular = 𝐼𝐼in ⋅ 𝑘𝑘𝑠𝑠𝑠𝑠𝑏𝑏𝑠𝑠𝑠𝑠𝑠𝑠𝑎𝑎𝑠𝑠⋅𝑛𝑛+22𝜋𝜋

⋅ cos𝑛𝑛 𝜃𝜃

• 𝐼𝐼in = Lichtstärke des einfallenden Lichtstrahls der Punktlichtquelle• 𝑘𝑘𝑠𝑠𝑠𝑠𝑏𝑏𝑠𝑠𝑠𝑠𝑠𝑠𝑎𝑎𝑠𝑠= empirisch bestimmter Reflexionsfaktor

• 𝜃𝜃 = Winkel zwischen idealer Reflexionsrichtung des Lichtstahls und Blickrichtung• 𝑛𝑛 = konstanter Exponent zur Beschreibung der Oberflächenbeschaffenheit

• 𝑛𝑛+22𝜋𝜋

= Normalisierungsfaktor, zur Helligkeitsregulierung

• Vollständige Formel:

𝐼𝐼out =𝐼𝐼a ⋅ 𝑘𝑘am𝑏𝑏𝑏𝑏𝑏𝑏𝑛𝑛𝑏𝑏+𝐼𝐼in ⋅ 𝑘𝑘diffus ⋅ cos 𝜑𝜑 +𝐼𝐼in ⋅ 𝑘𝑘𝑠𝑠𝑠𝑠𝑏𝑏𝑠𝑠𝑠𝑠𝑠𝑠𝑎𝑎𝑠𝑠⋅𝑛𝑛+22𝜋𝜋

⋅ cos𝑛𝑛 𝜃𝜃

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 302018-10-26

Phong-Beleuchtungsmodell-Beispiel(monochromatisch)

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 312018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 322018-10-26

Bidirektionale Reflexionsverteilungsfunktion (BRDF)• Funktion für das Reflexionsverhalten• wird in der realistischen 3D-Computergrafik verwendet• dient dazu Oberflächen möglichst realistisch und physikalisch korrekt darzustellen• je nach gewählter Genauigkeit sehr komplex• in der Computergrafik werden meist einfache Modelle verwendet

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 332018-10-26

BRDF – Grundbegriffe • reflektierte Strahldichte (radiance):

𝑳𝑳𝝀𝝀,𝒓𝒓𝒓𝒓 (Richtung 𝛹𝛹= 𝜑𝜑𝑏𝑏 ,𝜃𝜃𝑏𝑏 )

• einfallende Bestrahlungsstärke (irradiance):𝑬𝑬𝝀𝝀,𝒊𝒊𝒊𝒊 (Richtung 𝛼𝛼= 𝜑𝜑𝑏𝑏 ,𝜃𝜃𝑏𝑏 )

• Verhältnis zwischen 𝐿𝐿𝜆𝜆,𝑠𝑠𝑟𝑟 und 𝐸𝐸𝜆𝜆,𝑏𝑏𝑖𝑖 wird BRDF genannt:

𝑝𝑝 𝜆𝜆 =𝐿𝐿𝜆𝜆,𝑠𝑠𝑟𝑟

𝐸𝐸𝜆𝜆,𝑏𝑏𝑖𝑖

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 342018-10-26

BRDF - Eigenschaften• Die BRDF (für jeden Punkt x) ist eine 5-dimensionale skalare Funktion:

𝑝𝑝 𝜆𝜆,𝜑𝜑𝑏𝑏 ,𝜃𝜃𝑏𝑏 ,𝜑𝜑𝑏𝑏 ,𝜃𝜃𝑏𝑏

• keine Energie-Einheit, nur Verhältniszahl• kann durch Messung für verschiedene Materialien bestimmt werden• 𝑝𝑝 𝜆𝜆 ändert sich nicht wen Einfalls- und Ausfallswinkel vertauscht werden• Superposition gilt, d.h. mehrere Quellen überlagern sich linear

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 352018-10-26

BRDF - Eigenschaften• in der Computergrafik ist es üblich bidirektionale Reflektivität als Kombination mehrere

Komponenten aufzufassen• diffuse 𝑝𝑝𝑑𝑑 und spekulare 𝑝𝑝𝑠𝑠 Komponenten werden gemischt• ambienter Anteil 𝑝𝑝𝑎𝑎 wir hinzuaddiert• für eine Menge 𝑄𝑄 von Lichtquellen berechnet sich dann die gesamte reflektierte

Strahlstärke:

𝐿𝐿𝜆𝜆,𝑠𝑠𝛹𝛹 = 𝑝𝑝𝑎𝑎 𝜆𝜆 ⋅ 𝐸𝐸𝑎𝑎𝜆𝜆 + �1≤𝑗𝑗≤𝑄𝑄

𝐸𝐸𝜆𝜆,𝑏𝑏𝑗𝑗𝑖𝑖𝑗𝑗 ⋅ 𝑘𝑘𝑑𝑑 ⋅ 𝑝𝑝𝑑𝑑 + 𝑘𝑘𝑠𝑠 ⋅ 𝑝𝑝𝑠𝑠

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 362018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 372018-10-26

Raytracing (Strahlenverfolgung)• Sampling-basiertes Verfahren• Strahlen vom Augpunkt durch jedes Pixel des Rasters senden• Schnittpunkt mit Objekten berechnen

• Schnittpunkt mit dem größtem z-Wert stammt vom sichtbaren Objekt

Lichtausbreitung

[5]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 382018-10-26

Raytracing (Strahlenverfolgung)• für jeden Strahl erfolgt Bestimmung der Reflexion der Lichtquellen

• material- und geometrieabhängig• Berechnung erfolgt über BRDF• bestimmt Helligkeits- und Farbwert des entsprechenden Pixels

• Bestimmung der diffusen und spekularen Lichtreflexion nach dem Phong-Beleuchtungsmodell

• Bisher nur einfache, lokale Beleuchtung !• keine Spiegelung• keine Schatten• keine indirekte Beleuchtung

Lichtausbreitung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 392018-10-26

Rekursives Raytracing• Berechnung von Sekundärstrahlen am

Auftreffpunkt (Reflexions- und Schattenfühler)• mehrfach Reflexion durch ideale Spiegelung

• Strahl (1) => Strahl (2) => Strahl (3)• Berechnung der diffusen und spekularen Reflexion

mittels Schattenfühlern• Strahl (𝑆𝑆𝑎𝑎), Strahl (𝑆𝑆𝑏𝑏)

• Addition der Sekundärstrahlen an Objekt B zum Farbwert des Pixel am Objekt A

• Anteil bei weiteren Rekursion meistens fallend• Rekursion abbrechen wenn Beitrag

vernachlässigbar

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 402018-10-26

Rekursives Raytracing

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 412018-10-26

Rekursives Raytracing

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 422018-10-26

Rekursives Raytracing

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 432018-10-26

Raytracing Erweiterungen• Transparent und Brechungseffekte müssen Berücksichtigt werden• rein theoretisch unendlich viele Sekundärstrahlen

• muss vereinfacht werden z.B. Monte Carlo Ray Tracing• siehe Vorlesung Computergrafik 1

Lichtausbreitung

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 442018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 452018-10-26

Zeichnen einer Strecke• Endpunktkoordinaten werden durch Projektion passend auf Fensterkoordinaten

skaliert und auf ganzzahlige Werte gerundet• Bsp.: Midpoint Algorithmus (J. Bresenham):

• ausgehend von einem bereits gesetzten Punkt P bestimme ob rechts liegender Punkt E oder oben rechts liegender Punkt NE als nächstes gesetzt wird

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 462018-10-26

Algorithmus Midpoint-Algorithmus:

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 472018-10-26

Effekte der Rasterisierung: Aliasing• Treppenstufeneffekte bei gerasterten Linien

• Unregelmäßigkeiten werden verstärkt vom Auge wahrgenommen

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 482018-10-26

Anti-Aliasing Grundidee:a) Original der Linieb) Statt der Linie wird ein Rechteck mit der Breite von einem Pixel betrachtetc) Graustufen der darunter liegenden Pixelflächen entsprechen dem jeweiligen

Überdeckungsgrad

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 492018-10-26

Polygonfüllalgorithmus• finde die Pixel innerhalb des Polygons und weise ihnen Farben zu• zeilenweises Vorgehen pro Rasterlinie:

• berechne Schnittpunkte zwischen Bildzeile und Polygonkanten• notiere alle Schnittpunkte in einer Liste• sortiere Schnittpunkte der aktuellen Bildzeile in x-Richtung• Paritätsregel: fülle die Pixel zwischen ungeraden und nächstem geraden

Schnittpunkt

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 502018-10-26

Füllmuster: Pattern-Filling• füllen eines Polygons mit einem Pattern statt mit einem konstanten Farbwert

Operationen auf dem Bildraster

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 512018-10-26

• Grundlagen der Geometrie

• Farbmodelle

• Lichtausbreitung

• Phong-Modell

• Bidirektionale Reflexionsverteilung

• Raytracing

• Operationen auf dem Bildraster

• Texturemapping

Gliederung

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 522018-10-26

Allgemein• 3D-Rendering:

• direkte 3D-Darstellung durch Rasterkonvertierung / Polygonfüllalgorithmus• Textur Mapping:

• bildbasiertes Rendern (image-based Rendering)• als Erweiterung des einfachen Pattern-Filling• Details als Textur - 3D Objekte selbst mit relativ einfachen Polygonen modelliert

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 532018-10-26

Grundprinzip:• Transformation: Texturraum wird in den Bildraum transformiert• Resampling: transformierte Texturraster wird auf das Bildraster gerundet• Filter: Verhindern/Abmildern von Aliasing-Effekten• Beleuchtung: RGB-Werte der Textur werden als Materialattribute in die Beleuchtung

einbezogen

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 542018-10-26

Affines Texturemapping• Zuordnung von 3 Punkten im Bildraster zu den entsprechenden 3 Punkten im

Texturraster

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 552018-10-26

Affines Texturemapping• Problem: Perspektive wird nicht korrekt abgebildet

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 562018-10-26

Perspektivisches Texturemapping• affines Texturmapping mit zusätzlicher Bestimmung der Objektraumkoordinaten• 𝑀𝑀𝑏𝑏𝑏𝑏 = 𝑀𝑀𝑏𝑏𝑜𝑜 ⋅ 𝑀𝑀𝑜𝑜𝑏𝑏

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 572018-10-26

Vergleich Affines- und Perspektivisches Texturemapping

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 582018-10-26

Vergleich Affines- und Perspektivisches Texturemapping• Perspektivisches Texturmapping liefert bei jeder Ansicht geometrisch korrekte Bilder

• etwas höherer Berechnungsaufwand pro Polygon:• da zwei Transformationsmatrizen und eine Inverse bestimmt werden muss

• wesentlich höherer Berechnungsaufwand pro Pixel:• Matrixmutiplikation plus Division durch z

Texturemapping

[1]

M.Sc. Tristan Nauber Computergrafik Zusammenfassung 592018-10-26

1. Vorlesungsskript Computergrafik 12. https://aprendiendoxna.files.wordpress.com/2010/01/captura-3d.jpg3. https://de.wikipedia.org/wiki/Vektor4. https://de.wikipedia.org/wiki/Phong-Beleuchtungsmodell5. https://de.wikipedia.org/wiki/Raytracing

Quellen