OpenGL CubeMaps

Bisher haben wir den Hintergrund der Szene - die sog. SkyBox - mit Hilfe eines ganz normalen Modells gezeichnet. OpenGL bietet allerdings auch die Möglichkeit einen speziellen Sampler Type samplerCube zu verwenden welcher genau für diesen Anwendungsfall optimiert ist.

Mit diesem Sampler können Richtungsvektoren anstelle von Texturkoordinaten verwendet werden um einen Wert aus der Cubemap zu lesen.

Schauen Sie sich die beiden neuen Klassen SkyBox und CubeMap an. Mit deren Hilfe wird eine spezielle Textur und ein spezielles Modell definiert um dieses Update zu realisieren. Zusätzlich gibt es noch die beiden neuen Vertex- und Fragment Shader *_skybox.glsl womit der Hintergrund gerendert wird.

Eine weitere wichtige Änderung finden Sie in der Struktur Environment. Hier werden ab sofort nicht mehr nur die numerischen Werte für Hintergrundfarbe und Richtung des Sonnenlichtes gespeichert sondern Environment beinhaltet die kompletten Modelle für die SkyBox und verwaltet diese.

Als neue Besonderheit fällt nun auf, dass die SkyBox nicht mehr als erstes im Hintergrund gerendert wird sondern als letztes.

Reflektionen

Die Änderungen an der SkyBox sind nicht zufällig so gewählt worden sondern Sie ermöglichen ein neues Feature in unsere Shader mit aufzunehmen, nämlich die Reflektionen.

Wenn Sie die Anwendung starten sehen Sie 2 Objekte. Eines davon nutzt den klassischen Shader den wir bereits aus den vorherigen Kapiteln kennen. Das andere nutzt einen neuen Shader der das Modell mit spiegelnder Oberfläche darstellt.

Hintergrundinfos

Eine gute Erklärung zu diesen beiden Konzepten finden Sie in diesem Artikel auf LearnOpenGL.

Aufgaben

7.1: Machen Sie sich mit diesen neuen Features vertraut indem Sie die neuen Shader und Klassen studieren sowie die verlinkten Artikel lesen und bei Bedarf weitere Infos über das Internet ausfindig machen.

7.2: Entwickeln Sie einen besseren Shader der die klassische Beleuchtung des Diffuse/Roughness/Normal Workflows mit den Möglichkeiten der Reflektionen kombiniert. Dabei ist wichtig, dass Sie sich mit den zugrunde liegenden Beleuchtungsmodellen beschäftigen und genau verstehen welche Lichtkomponente von der Reflektion beeinfluss wird. Denken Sie auch daran die Roughness Map in diese Berechnungen mit einzubeziehen.

Genauere Details zu diesen Aufgaben gibt es auch in der Veranstaltung am 1. Juni 2023

Diese Seite speichern:
Redvery Journal
Computergrafik-Effiziente-Algorithmen-7.trj
Seite speichern
Computergrafik-Effiziente-Algorithmen-7.trj
Redvery Journal ist ein modernes Dateiformat mit dem diese Seite incl. aller Bilder und Anhänge gespeichert und offline verwendet werden kann.

Die passende App dazu gibt es kostenlos unter www.redvery.com/journal
Speichern
Abbrechen