Graphische Datenverarbeitung (Master)
Lerninhalte
Diese Vorlesung vermittelt die theoretischen und praktischen Grundlagen der Computergraphik. Thematischer Schwerpunkt ist die Visualisierung (oder das Rendering) einer dreidimensionalen Szene. Hierfür müssen zunächst mehrere Teilprobleme verstanden und gelöst werden, wobei wir uns an Konzepten und Methoden anderer Disziplinen (Physik, Biologie, Mathematik, Informatik) orientieren können: Wie breitet sich Licht in einer Szene aus? Wie interagiert Licht mit Objekten und unterschiedlichen Materialien? Wie funktioniert eine Kamera oder die menschliche visuelle Wahrnehmung? Wie repräsentieren wir dreidimensionale Modelle und Szenen?
Die Vorlesung gliedert sich in vier thematische Blöcke:
- Die Globale Beleuchtung (Ray Tracing, Path Tracing) beantwortet die obigen Fragen und ermöglicht es uns, photorealistische Bilder zu berechnen (z.B. für computergenerierte Filme). Durch etwas Mathematik, effiziente Algorithmen und schlaue Datenstrukturen können wir die Rechenzeit von Stunden auf Minuten oder Sekunden reduzieren.
- Interaktives Echtzeit-Rendering wird durch die Rasterisierungspipeline erreicht, welche den Lichttransport vereinfacht und alle Berechnungen hochgradig parallel auf der Graphikkarte durchführt. Wir werden einen interaktiven stereoskopischen OpenGL-Renderer entwickeln.
- Nachdem wir den Rendering-Prozess verstanden haben, betrachten wir die Eingabe, d.h., die 3D-Szenenbeschreibung. Wir werden mehrere Geometrie-Repräsentationen kennenlernen, die jeweils eigene Stärken und Schwächen haben. Neben Dreiecksnetzen werden wir implizite Flächendarstellungen (für Constructive Solid Geometry) und Freiform-Kurven und -Flächen (für Computer-Aided Design) betrachten.
- Am Ende werden wir kurz Charakter-Animation betrachten, wobei wir uns auf einfaches Linear Blend Skinning für Skelett-Animation sowie Linear Blend Shapes für Gesichtsanimationen beschränken, da fortgeschrittene Techniken in einer eigenen Vorlesung “Computer Animation” behandelt werden.
Zum besseren Verständnis werden die meisten der in der Vorlesung behandelten Techniken in den praktischen Übungen implementiert. Diese Übungen bestehen aus drei Mini-Projekten (Globale Beleuchtung, Echtzeit-Rendering mit OpenGL, Geometrische Modellierung mit Subdivision- und Bezier-Flächen), welche jeweils ca. 3 Wochen Bearbeitungszeit haben.
Corona-Maßnahmen
- Aufgrund der Corona-Pandemie wird die Vorlesung (sehr wahrscheinlich) nicht in Präsenz stattfinden.
- Statt dessen wird es vorher aufgezeichnete Vorlesungsvideos geben, die zusammen mit den Vorlesungsfolien jeweils bis zum Donnerstag abend bereitgestellt werden.
- In der Folgewoche (Donnerstag, 9:00-10:00 Uhr) wird es dann eine Online-Fragestunde via Zoom geben, in der Fragen geklärt und Quizzes durchgespielt werden. Hier der Zoom-Link (Meeting ID: 938 9763 2094, Passcode: 322283).
- Fragen zu Vorlesungsinhalten können entweder online in der Fragestunde gestellt oder vorher auf unseren interaktiven HTML-Folien direkt und anonym gepostet werden.
- Auf die Vorlesungsvideos und -folien können Sie nur mit einem Passwort zugreifen. Bitte registrieren Sie sich im LSF für die Veranstaltung, damit wir Ihnen die Zugangsdaten über den LSF-Emailverteiler zuschicken können. Die Zugangsdaten stehen auch im Moodle-Raum der Veranstaltung.
Voraussetzungen
- Eine mathematische Grundausbildung (Lineare Algebra, Analysis) wird vorausgesetzt.
- Allgemeine Programmierkenntnisse sowie Datenstrukturen und Algorithmen werden vorausgesetzt.
- Das Bearbeiten der praktischen Übungsaufgaben erfolgt in C++. Es wird am Anfang einen C++-Crash-Kurs geben.
Vorlesungsmaterialien
- Die Vorlesungsfolien werden als HTML-Folien bereitgestellt, da dies die Einbindung interaktiver Inhalte wie Videos und Demo-Apps ermöglicht. Zusätzlich stehen die Folien aber auch als (nicht mehr interaktive) PDF-Dokumente zur Verfügung. Die Vorlesungsfolien und -videos gibt es hier (Zugangsdaten werden über LSF-Email verschickt).
- Für die Vorlesung wird es vorher aufgenommene Erklärvideos geben, die in die HTML-Folien integriert sind.
- Nach Vorlesungsende gibt es die HTML-Folien auch in Form einer Electron-App, was Archivierung und Offline-Zugriff ermöglicht (Vorsicht, ca. 1.6GB):
- Folgende Bücher werden (auszugsweise) verwendet:
- Foley, van Dam, Feiner, Hughes: Computer Graphics: Principles and Practice, Addison-Wesley, 1996.
- Glassner: An Introduction to Ray Tracing, Academic Press, 1989
- Pharr, Humphreys: Physically Based Rendering, Morgan Kaufmann, 2004
- Shreiner, Seller, Kessenich, Licea-Kane: OpenGL Programming Guide, 8th edition, Addison-Wesley, 2013.
- Seller, Wright, Haemel: OpenGL SuperBible: Comprehensive Tutorial and Reference, 6th edition, Addison-Wesley, 2013
- Rost, Licea-Kane, Ginsburg, Kessenich: OpenGL Shading Language, 3. Edition, Addison-Wesley, 2009
- Farin: Curves and Surfaces for CAGD. A Practical Guide, Morgan Kaufmann, 2001
Tentative Vorlesungsplanung
Woche | Vorlesung Dienstag | Vorlesung Donnerstag | Übung |
---|---|---|---|
41 | Einführung | Strahlschnitte | |
42 | Farben | Beleuchungsberechnung | |
43 | Ray Tracing mit C++ | Effizientes Ray Tracing mit C++ | Einführung |
44 | Dreiecksnetze | Räumliche Datenstrukturen | Ray Tracing |
45 | Rendering Equation | Path Tracing | |
46 | Transformationen | Projektionen | |
47 | Rasterisierungspipeline | OpenGL | |
48 | Texturen | Schattenberechnung | Solar System |
49 | Freiform-Kurven 1 | Freiform-Kurven 2 | |
50 | Freiform-Flächen | Subdivision | |
51 | Advanced OpenGL | keine Vorlesung | |
2 | Implizite Flächenrepräsentationen | Volumen-Rendering | Bezier & Subdivision |
3 | Fouriertransformation | Bildkompression | |
4 | Character Animation | keine Vorlesung | Fun with Fourier |
5 | keine Vorlesung | Zusammenfassung & Fragestunde |