Graphische Datenverarbeitung (Master)

LSF-NummerVeranstaltungTermineDozent
041231Vorlesung

Dienstag, 8:15-10:00 Uhr, OH12 E.003
Donnerstag, 14:15-16:00 Uhr, OH12 E.003

Mario Botsch
041232Übung

Donnerstag, 12:15-13:45 Uhr, OH12-3.033
Donnerstag, 16:00-17:30 Uhr, OH12-3.033

Astrid Pontzen

Organisation

  • Die Vorlesung wird (solange Corona uns lässt) in Präsenz stattfinden.
  • Es wird sehr wahrscheinlich eine Präsenzübung und eine Online-Übung geben.
  • 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 11.10.2022, die erste Übung findet in Woche 43 statt.

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 gibt es die HTML-Folien auch in Form einer Electron-App, was Archivierung und Offline-Zugriff ermöglicht (Vorsicht, ca. 2GB):
  • 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

WocheVorlesung DienstagVorlesung DonnerstagÜbung
41EinführungStrahlschnitte 
42FarbenBeleuchungsberechnung 
43DreiecksnetzeRay Tracing mit C++Ray Tracing
44keine VorlesungEffizientes Ray Tracing mit C++
45Rendering EquationPath Tracing
46TransformationenProjektionen
47RasterisierungspipelineOpenGLSolar System
48TexturenSchattenberechnung
49Freiform-Kurven 1Freiform-Kurven 2
50Freiform-FlächenSubdivision
51Advanced OpenGLkeine VorlesungBezier & Subdivision
2Implizite FlächenrepräsentationenVolumen-Rendering
3FouriertransformationBildkompression
4Räumliche DatenstrukturenCharacter AnimationFun with Fourier
5ProbeklausurZusammenfassung & Fragestunde