Computergraphik - WS 13/14

Diese Vorlesung soll eine Einführung in die theoretischen und methodischen Grundlagen der Computergraphik geben, als auch die Grundlagen für die praktische Implementierung von computergraphischen Systemen legen.

Der Schwerpunkt liegt auf Algorithmen und Konzepten zur Repräsentation und Visualisierung von polygonalen, 3-dimensionalen graphischen Szenen. Die Übungsaufgaben werden teils theoretisch, teils praktisch sein, wobei die praktischen Aufgaben gewisse Programmierfähigkeiten in C++ verlangen. (Zu Beginn der Vorlesung wird deshalb nochmals ein kurzer "Refresh" Ihrer C/C++-Kenntnisse gemacht.) Ich empfehle den Besuch des "Propädeutikums C/C++" vor der Computergraphik-Vorlesung. Die theoretischen Aufgaben setzen teilweise einfache Matrix-Vektor-Rechnung voraus.

Bemerkung: in der Vorlesung wird nicht die Modellierung, Animation, oder Bildbearbeitung mit Hilfe von fertiger Software (z.B. Photoshop, Blender, Maya, Cinema4D, etc.) behandelt! Wir beschäftigen uns mit den Algorithmen, die hinter diesen Programmen stecken.

Aus dem Inhalt:

  1. Mathematische Grundlagen
  2. OpenGL and C++
  3. 2D Algorithmen der Computergraphik (Scan Conversion, Visibility Computations, etc.)
  4. Theorie der Farben, Farbräume (hauptsächlich physikalische, neurologische, und technische Aspekte)
  5. 3D Algorithmen der Computergraphik (Rendering Pipeline, Transformationen, Beleuchtung, etc.)
  6. Techniken zum Echtzeit-Rendering
  7. Shader
  8. Texturierung

Aktuelles


Folien

Die folgende Tabelle wird die behandelten Themen und die dazugehörigen Folien enthalten.

Woche Thema Folien Übungs-
aufgaben
Frameworks
1. Orga, Intro, Geschichte, Displays, Gammakorrektur PDF1 PDF2 Blatt 1 OpenGL-"Hello World"
"Sphere-Flake"
2. Mathe Wdhg. (Skalar- und Kreuzprodukt, Koord.systene, Flächeninhalte, geometrische Prädikate, lineare Interpolation, Ebenen und Dreiecke)
Wiederholung bzw. Einführung in C++
Einführung in OpenGL;
PDF1 PDF2 PDF3 Blatt 2 cpp_Framework
3. Übersicht über die Graphik-Pipeline;
Scanline-Konvertierung von Linien und Kreisen (Midpoint-Algorithmus, Interpolation von Attributen, span-based scanline conversion of lines, raycasting of terrains, scan conversion of circles)
PDF1 PDF2 Blatt 3 Tetraflakes
4. Baryzentrische Koordinaten (affine Kombination, affine Abbildungen, konvexe Hülle, baryzentrische Koordinaten im Dreieck, baryzentrische Interpolation);
Polygon Scan Conversion (Triangulation, Art Gallery Theorem, ein Triangulations-Algorithmus, Rasterisierung von Dreiecken, Algorithmus von Pineda, Pixel Planes, Odd-Even-Rule, Winding-Number-Rule, Flood Fill)
PDF1 PDF2 Blatt 4 Pineda
5. Visibility Computations: Painter's Algorithm, Z-Buffer, Depth-of-Field, Depth Complexity & Overdraw, Hierarchischer Z-Buffer, Object-Space & Image-Space-Algorithmen, BSP-Tree, Warnock's Algorithmus & Quadtree, Double Buffering, Quad-Buffers, Stencil Buffer, Rendering planarer Spiegelungen, Rendering von Schatten mittels Shadow Volumes PDF Blatt 5 Transparent_with_BSP
6. Clipping: Problemstellung, Motivation für Clipping vor der Projektion
Transformationen: Koordinatensysteme, homogene Koordinaten, Translation, Rotation, Skalierung, Scherung, Spiegelung, Concatenation, Euler-Winkel, Gimbal Lock, Rotation um beliebige Achse, Basiswechsel, Zerlegung einer Rotationsmatrix Quaternionen, Darstellung von Rotationen mittels Quaternionen,
PDF1 PDF2 Blatt 6 Billard
7. Interpolation von Quaternionen, starre Transformationen, Klassifikation aller Transformationen, Transformationen in OpenGL, relative Transformationen, Objekthierarchien, Matrix-Stack in OpenGL.
Projektionen & Perspektive, Kamera-Transformation.
Farben 1: Licht, Chromatizität, Reflectance spectrum,
PDF1 PDF2 Blatt 7
8. Farben 2: wahrgenommener Stimulus, Metamere, Linearkombination und Gleichheit von Lichtquellen, Definition des Begriffes "Farbe", Grassmann'sche Experimente, Farb-Basiswechsel, CIEXYZ-Farbraum, Chromatizitätsdiagramm, Gegenfarbenmodell, Farbmodelle (RGB, CMY, HSV, Interpolation von Farben, Abstand zwischen Farben, uniforme Farbräume, Gamut.
Lighting 1: Lichtquellen, diffuse Reflexion,
PDF Blatt 8
9. Lighting & Shading 2: spiegelnde Reflexion, gerichtet diffuse Reflexion, Phong-Beleuchtungsmodell, Blinn-Phong-Modell, BRDF's, Lafortune-Modell, Flat-/Gouraud-/Phong-Shading, Mach-Bänder, Beleuchtung in OpenGL.
Shader Programming 1: fixed-function pipeline, programmable pipeline, Einführung in GLSL,
PDF1 Blatt 9
10. Shader Programming 2: uniform- und varying-Variablen, Per-Pixel-Lighting, deferred shading, Depth-of-Field-Effekt.
Texturierung: Übersicht, diskrete & prozedurale Texturen, Formalisierung, Texturkoordinaten (stückweise lineare Parametrisierung), Texturkoordinaten-Interpolation (nur linear), Modulation der Beleuchtung durch Texturen, gloss map, alpha map, bump mapping (nur die Idee), Textur-Interpolation, MIP-Maps,
PDF1 PDF2 Blatt 10 Shader_Billard

Literatur

Folgende Literatur eignet sich als begleitende Literatur:

Falls Sie sich diese Bücher anschaffen möchten sollten Sie vielleicht überlegen, gebrauchte Exemplare zu erwerben -- oft gibt es diese zu einem Bruchteil des Neupreises. Zwei gute Internetadressen sind Abebooks und BookButler.

Übungsbetrieb

Die Übungsblätter werden jeweils am Dienstag Abend auf der Homepage der VL (also hier) ins Netz gestellt.

Die Abgabe der Lösungen ist jeweils am Montag bzw. Dienstag eine Woche später direkt in der Vorlesung bzw. in der Übung. Theoretische Aufgaben werden schriftlich abgeliefert, praktische Aufgaben werden in der Übung am Rechner vorgeführt.

Hinweise und Downloads zur Bearbeitung der Übungsblätter

Zum Shader-Übungsblatt

Die in der Vorlesung demonstrierten GLSL-Shader finden Sie in diesem Archiv. Sie enthalten den Source-Code und teilweise Mac-Executables. (Es sind auch noch einige fortgeschrittenere Shader dabei, für diejenigen, die Geschmack an der Sache gefunden haben.)

Den im Übungsblatt und in der Vorlesung erwähnten Shader Maker finden Sie hier.

Online Literatur und Links zum Programmieren in C/C++ und in OpenGL

Online Literatur und Resources zu Computergraphik

Gabriel Zachmann
Last modified: Tue Oct 07 12:38:24 CEST 2014