Graphische Datenverarbeitung (Master)
Veranstaltung | Termine | Dozent |
---|---|---|
Vorlesung | Dienstag, 8:30-10:00 Uhr, OH12 E.003 | Mario Botsch |
Übung | Donnerstag, 12:15-13:45 Uhr, OH12 4.030 | Astrid Pontzen |
Organisation
- Bitte registrieren Sie sich im LSF für die Veranstaltung, damit wir Ihnen über den LSF-Emailverteiler Informationen zur Vorlesung und Zugangsdaten für die Vorlesungsmaterialien schicken können. Sie werden dann auch automatisch vom LSF für den Moodle-Raum der Vorlesung registriert.
- Die Vorlesung startet am 10.10.2023.
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.
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).
- Die Vorlesung wird aufgezeichnet. Die Vorlesungsvideos werden nahtlos in die HTML-Folien integriert.
- Nach Vorlesungsende wird es die HTML-Folien und Vorlesungsvideos auch in Form einer Electron-App geben, was Archivierung und Offline-Zugriff ermöglicht.
- 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 | keine Übung |
42 | Farben | Beleuchungsberechnung | keine Übung |
43 | Dreiecksnetze | Ray Tracing mit C++ | Ray Tracing |
44 | Effizientes Ray Tracing mit C++ | Rendering Equation | |
45 | Path Tracing | Räumliche Datenstrukturen | |
46 | Transformationen | Projektionen | |
47 | Rasterisierungspipeline | OpenGL | Solar System |
48 | Texturen | Schattenberechnung | |
49 | Freiform-Kurven 1 | Freiform-Kurven 2 | |
50 | keine Vorlesung | keine Vorlesung | |
51 | Freiform-Flächen | Subdivision | Bezier & Subdivision |
2 | Implizite Flächenrepräsentationen | Volumen-Rendering | |
3 | Fouriertransformation | Bildkompression | |
4 | Advanced OpenGL | Character Animation | Fun with Fourier |
5 | Zusammenfassung | Probeklausur |