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.)
Aus dem Inhalt:
Woche | Thema | Übungs- aufgaben |
---|---|---|
1. |
Orga, Intro, Geschichte, Displays, Gammakorrektur,
Mathe Wdhg. 1 (Koordinatensysteme, Eigenschaften von Skalar- und Kreuzprodukt) |
Blatt 1 |
2. |
Mathe Wdhg. 2 (Flächeninhalte, Spatprodukt, Volumeninhalte, geometrische Prädikate, lineare
Interpolation);
Wiederholung bzw. Einführung in C++ |
Blatt 2 |
3. |
Übersicht über die Grafik-Pipeline; Einführung in OpenGL; Scanline-Konvertierung von Linien mit Midpoint-Algorithmus, optimale Beschleunigung mit Span-Algorithmus, Anwendung im Raytracing |
Blatt 3 |
4. |
Ray-Tracing von Terrain, Baryzentrische Koordinaten |
Blatt 4 |
5. |
Triangulierung in 2D (Existenz, Anzahl, Algorithmus); Scan Conversion für Dreiecke, Füllen nicht-einfacher Polygone und beliebiger Regionen (Odd-Even-Test, Winding-Number-Test) Visibility Computations 1 (Painter's Algo, Z-Buffer, Hierarchischer Z-Buffer) |
Blatt 5 |
6. | Visibility Computations 2 (BSP-Tree, Warnock Algo, Double & Quad Buffer) | Blatt 6 |
7. |
Stencil Buffer, Spiegelungen, Rendering von Schatten mittels Shadow-Volumes Clipping (Einzelnes Liniensegment, Outcodes, Cyrus-Beck-Algo, Sutherland-Hodgeman) |
Blatt 7 |
8. | Transformationen (Einordnung in die Pipeline, homogene Koordinaten, einfache Transformationen, Konkatenierung) | Blatt 8 |
9. |
Transformationen 2 (Euler-Winkel, Gimbal Lock, Rotation um beliebige Achse,
Zerlegung von Rotationsmatrizen, Anatomie einer Matrix, Transformationen in OpenGL,
relative Transformationen, Objekthierarchien, Matrix-Stack, Klassifikation, Quaternionen) |
Blatt 9 |
10. | Projektionen und Perspektive (Einordnung in die Pipeline, orthographische und perspektivische Projektion, Eigenschaften, Viewing-Transformation, Proj. in OpenGL) | Blatt 10 |
11. | Farben 1 (Einführung, Chromatizität, reflectance spectrum, spektrale Empfindlichkeit, Metamere, Grassmann'sche Experimente, CIE-XYZ, opponent color model, RGB, CMY) | Blatt 11 |
12. |
Farben 2 (HSV, Konvertierung, HLS, Anwendung, Interpolation, Uniforme Farbräume, CIE Lab); Lighting (Lambert'sches und Phong-Beleuchtungsmodell, Blinn-Phong, Gouraud-Shading, Phong-Shading, Mach-Bänder, Beleuchtung in OpenGL); |
Blatt 12 |
13. | Shader-Programmierung (GLSL, Gooch-Shader, Per-Pixel-Lighting, Early-Z, Deferred Shading / Deferred Lighting, Depth-of-Field) | |
14. | Texturen (Texturarten, Interpolation der Texturkoordinaten, perspektivisch korrekte Interpolation, Modulation der Beleuchtung, Bump-Mapping, Alpha-Blendung und Alpha-Texturen, Texturen in OpenGL, Textur-Interpolation, MIP-Maps, Einfache Parametrisierung) |
Matr.Nr. | Punkte | Note |
---|---|---|
393122 | 147.0 | 1.3 |
315506 | 75.0 | 3.3 |
349745 | 88.0 | 3.0 |
394714 | 105.0 | 2.3 |
375845 | 112.5 | 2.3 |
Die Abgabe der Lösungen ist jeweils am Mittwoch zwei Wochen 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.