Hauptinhalt
Bildsynthese (SS 2024)
Dozent: Prof. Dr. Thorsten Thormählen
Modulbezeichnung: CS 681
Sprache der Vorlesung: Englisch
Im Sommersemester 2025 wird dieses Modul aufgrund eines geplanten Forschungssemesters nicht angeboten.
Computer-generierte Bilder werden heutzutage in einer Vielzahl von Anwendungsgebieten verwendet. Für einige Anwendungen (wie z.B. bei der Erzeugung von Bildern in der Filmindustrie, Werbung oder Medizin) werden typischerweise sehr hohe Anforderungen an die visuelle Qualität gestellt. Die Vorlesung "Bildsynthese" behandelt Verfahren, die es erlauben, photo-realistische Bilder von virtuellen Szenen zu erstellen. Dazu bedarf es einer detaillierten Modellierung und Beschreibung der Szene. Außerdem muss die Lichtausbreitung innerhalb der Szene mittels globaler Beleuchtungsmodelle simuliert werden, was äußerst rechenaufwändig ist. Allerdings lassen sich die Berechnungen leicht parallelisieren, so dass viele Recheneinheiten gemeinsam an der Erzeugung eines Bilds arbeiten können. Heutige Grafikkarten (GPUs) besitzen sehr viele parallele Recheneinheiten sowie spezielle Ray-Tracing-Beschleunigungshardware. Die Vorlesung behandelt Technologien, die es erlauben, diese Recheneinheiten effizient zu nutzen und komfortabel zu programmieren.
Qualifikationsziele
In der Vorlesung werden Methoden vorgestellt, die es den Teilnehmern ermöglichen, computer-generierte Bilder von hoher visueller Qualität zu erstellen. Dies umfasst z.B. Themen, wie die Modellierung einer dynamischen virtuellen Szene, Freiformkurven und –flächen, Verfahren zur globalen Beleuchtung oder Methoden zur Darstellung von Volumendaten. Ein weiteres Ziel der Vorlesung ist, den Teilnehmern ein Verständnis für die Architektur aktueller Grafikkarten zu vermitteln, so dass die Grafikkarte als ein enorm leistungsfähiger Stream-Prozessor mit vielen parallelen Recheneinheiten begriffen wird, der auch für aufwändige Berechnungen außerhalb der Computergrafik eingesetzt werden kann. Hierzu wird die parallele Programmierung der Grafikkarte an praktischen Beispielen geübt. Außerdem soll die allgemeine Fähigkeit zum wissenschaftlichen Arbeiten und zum Lösen von Problemen sowie die Kommunikationsfähigkeit der Teilnehmer verbessert werden.
Voraussetzungen
Die Vorlesung erfordert Grundkenntnisse über Datenstrukturen, Algorithmen und objekt-orientierte Programmierung. Des Weiteren werden grundlegende Techniken der Grafikprogrammierung vorausgesetzt, wie sie in der Vorlesung Grafikprogrammierung vermittelt werden. Zur Auffrischung der Grundlagen können die ersten 6 Episoden der Videos zur Shader-Programmierung ansehen werden (siehe unten).
Organisation
Die Veranstaltung besteht aus einer Vorlesung (4 SWS) und einer Übung (2 SWS).
Vorlesung: Di. 10:15 - 11:45 Uhr, Do. 10:15 - 11:45 Uhr, MZG Hörsaal III
Übung: Do. 12:15 - 13:45 Uhr, MZG Hörsaal III
Übungsleiter: Sebastian Lieb
Gliederung der Vorlesung
- Einführung
- Ray Tracing Grundlagen
- Lichttransport
- CUDA
- 3D-Modellierung
- Volumen-Rendering
Vorlesungsfolien
Die Vorlesungsfolien werden als HTML5-Webseiten zur Verfügung gestellt. Es wird empfohlen, einen aktuellen Browser zu verwenden (wie z.B. Google Chrome, Mozilla Firefox). In Google Chrome kann die Druckfunktion des Browsers verwendet werden, um eine PDF-Datei der Folien zu erzeugen.
Es gibt zwei Versionen der Folien: intern und extern. Die internen Folien sind umfangreicher und nur für die Studierenden der Philipps-Universität Marburg zugänglich. Der Login wird in der Vorlesung bekannt gegeben.
Teil | Kapitel | Link |
---|---|---|
1. Einführung | 1.1 Einführung und Organisation | extern, intern |
2. Ray Tracing Grundlagen | 2.1 Vulkan Ray Tracing Pipeline | extern, intern |
2.2 Intersection Shader | extern, intern | |
3. Lichttransport | 3.1 Rendering-Gleichung | extern, intern |
3.2 Path Tracing | extern, intern | |
3.3 PBR Materialien | extern, intern | |
3.4 Bildbasierte Beleuchtung | extern, intern | |
4. CUDA | 4.1 Einführung in CUDA | pdf_(intern) |
4.2 Programmieren mit CUDA | pdf_(intern) | |
4.3 Effiziente parallele Algorithmen | pdf_(intern) | |
5. 3D-Modellierung | 5.1 3D-Modellierung | |
6. Volumen-Rendering | 6.1 Volumen-Rendering |
Übungen
Die Anmeldung zu den Übungsgruppen sowie die Abgabe des Übungszettels erfolgt über die Lernplattform ILIAS.
Rendering Wettbewerb
Im Rahmen des Kurses nehmen die Teilnehmer an einem Rendering-Wettbewerb teil. Die Aufgabe besteht darin, mit dem eigenen Raytracer ein realistisches Bild zu erstellen. Die Gewinner erhalten eine Urkunde und einen großformatigen Druck ihres Bildes.
Videos zur Shader-Programmierung
Im Wintersemester 2021 wurde mit der Aufnahme von Videos zur Shader-Programmierung begonnen. Die ersten Videos dieser Reihe können zur Wiederholung des Stoffes der Vorlesung Grafikprogrammierung verwendet werden. Einige spätere Videos dieser Reihe haben ebenfalls einen starken Bezug zum Stoff dieser Vorlesung.
- What are Shaders? A Hands-on Introduction [Shaders Monthly #1, 11/2021]
- Perspective Projection in GLSL [Shaders Monthly #2, 12/2021]
- OpenGL Modelview Matrix and 3D Transformations [Shaders Monthly #3, 01/2022]
- Blinn Phong Shading: Theory and Implementation [Shaders Monthly #4, 02/2022]
- Texture Mapping in GLSL [Shaders Monthly #5, 03/2022]
- What are Mipmaps? Texture Filtering in GLSL [Shaders Monthly #6, 04/2022]
- Procedural Textures: A Practical Introduction [Shaders Monthly #7, 05/2022]
- Procedural Noise: Value and Gradient Noise in GLSL [Shaders Monthly #8, 06/2022]
- Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Monthly #9, 07/2022]
- Importance Sampling: Image-based Lighting of a Lambertian Diffuse BRDF [Shaders Monthly #10, 09/2022]
- Image-based Lighting (IBL) of PBR Materials [Shaders Monthly #11, 01/2023]
- Halton Low-Discrepancy Sequence [Shaders Monthly #12, 05/2023]
- Sampling of Environment Maps for Image-based Lighting [Shaders Monthly #13, 9/2023]
- Deferred Shading [Shaders Monthly #14, 3/2024]