Computergraphik II

SS 12


Diese Vorlesung führt in die fortgeschritteneren und komplexeren Methoden der Computergraphik ein. Einzelne Themen aus der Grundlagenvorlesung werden vertieft, so dass Studenten am Ende der Vorlesung in der Lage sein werden, die aktuelle Forschungsliteratur dazu zu verstehen und komplexe Methoden in diesen Bereichen zu implementieren. Darüber hinaus werden Themen behandelt, die in der Grundlagen-Vorlesung "Computergraphik" noch nicht behandelt wurden, so dass die Studierenden einen erweiterten Horizont über das Gebiet der Computergraphik erhalten.

Voraussetzung ist der Stoff aus der Vorlesung "Computer-Graphik" (mit ein wenig Zusatzaufwand kann man aber die für die Computergraphik II notwendigen Teile aus der Computergraphik I relativ leicht selbst nachholen).

Die Übungsaufgaben werden zum größten Teil praktische Programmieraufgaben sein, d.h., gewisse Programmierfähigkeiten in C++ sind nötig.

Geplante Themen (diese können sich im Laufe des Semesters leicht ändern):

  1. Datenstrukturen und Theorie der Randrepräsentationen (Meshes)
  2. Fortgeschrittene Methoden der Texturierung (realistischere Bilder)
  3. Verallgemeinerte baryzentrische Koordinaten und Parametrisierung von Meshes
  4. Advanced Shader-Programmierung (Effekte)
  5. Culling Techniken (Beschleunigung)
  6. Ray-Tracing (photo-realistische Bilder)
  7. Alternative Objektbeschreibungen (Modellierung)
  8. Anti-Aliasing (Qualitätssteigerung)
  9. ...

Aktuelles


Folien

Die folgende Tabelle enthält die behandelten Themen und die dazugehörigen Folien.

Woche Thema Folien Übungs-
aufgaben
1. Organisation;
Randrepräsentationen (Mannigfaltigkeit, Orientierbarkeit, Indexed Face Set, Winged Edge Dtastructre, Doubly-Connected Edge List, Euler-Formel, Platonische Körper, Euler-Charakteristik)
PDF 0
PDF 1
Blatt 1
2. Recap Basic Texturing Techniques (aus CG 1)
Advanced Texturing 1 (Verzerrung, Texture Atlas, Cube Maps, Poly-Cube-Maps)
Recap Basic Shader Techniques (aus CG 1)
PDF 0
PDF 1
PDF 2
PDF 3
Blatt 2

Framework
3. Advanced Texturing 2 (Environment Mapping, Shade Trees, Parallax Mapping, View-Dependent Displacement Mapping);
Verallgemeinerte baryzentrische Koordinaten (Definition, Interpolationseigenschaft, allgemeine Konstruktion, Mean Value Coordinates);
Anwendungen der MVCs (Interpolation, Image Warping, Mesh Morphing)
PDF 1
PDF 2
Blatt 3
Framework
4. Parametrisierung (Problemstellung, allg. Ansatz, spezielle Parametrisierungen, Anwendung); Advanced Shader Programming (Prozedurale Texturen im Shader, Lichtbrechung als Beispiel eines globalen Effektes) PDF1 PDF2 Blatt 4

5. Real-time Rendering by Advanced Visibility Computations (Culling-Arten, normal masks for backface culling, clustered backface culling, hierarchical clustered backface culling; View Frustum Culling, Occlusion Culling bei Stadtmodellen, allgemeines Occlusion Culling; Coherent Hierarchical Culling, geometry fusion, portal culling, detail culling) PDF Blatt 5
Framework
6. Ray Tracing (Grundlagen, Kameramodelle, Renderinggleichung, Sekundärstrahlen, die Fresnel-Terme, Dämpfung, Dispersion, Schnittberechnung Strahl-Polygon, Strahl-Box, Strahl-Kugel, Software-Architektur, Vergleich mit polygonalem Rendering, Distribution Ray Tracing, weiche Schatten, Depth-of-Field, Anti-Aliasing) PDF
7. Alternative Objektrepräsentationen (implizite Flächen, Nullstellensuche, Instancing, Quadriken, Metaballs, CSG)
Acceleration data structures for Ray Tracing (light buffer, beam & cone tracing, Mailbox-Technik, 3D-Gitter, Varianten der Gitter, Distanzfeld, Octree, kd-Trees, Aufbau, Surace-Area-Heuristic, Varianten, Bounding Volumes, BVHs)
PDF1 PDF2


Hier finden Sie Aufzeichnugen auf Video der Vorlesungen vom SS 08. Allerdings weicht die aktuelle Vorlesung inhaltlich teilweise schon deutlich von damals ab.



Literatur

Folgende Literatur eignet sich als begleitende Lehrbücher (in Klammern die oben verwendeten Kürzel):
Achtung: nicht alle in der Vorlesung behandelte Themen sind schon in Lehrbüchern nachzulesen! Daher empfiehlt sich der Besuch der Vorlesung.

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.

Scheinerwerb

Einen Schein erwirbt man durch erfolgreiche Teilnahme an den Übungen. Das heißt, Sie müssen insgesamt mindestens 30% der maximal erhältlichen Punkte erreichen. (Eine "Schein"-Klausur findet nicht statt.)

Prüfung

Die Vorlesung wird mündlich geprüft. Wer sich prüfen lassen möchte, melde sich bitte wie üblich im Prüfungsamt und bei Frau Cronjäger (IfI, Zimmer 202) an.

Übungen

Übungsblätter
Die Übungsblätter werden jeweils vor der Übung hier ins Netz gestellt.

Die Abgabe der Lösungen findet direkt in der darauf folgenden Übung (also 1 Wochen später) statt. Praktische Aufgaben führen Sie in der Übung am Rechner vor.

Hinweise und Downloads zur Bearbeitung der Übungsblätter

Die Installation der OpenSource-Version von Qt ist inzwischen auf allen drei Plattformen sehr einfach. Unter Linux gibt es Qt inzwischen immer als vorgerfertigtes "Package" (RPM oder DEB), das man einfach nur mit dem Package-Manager installieren braucht (bei vielen Linuxen ist es auch schon per Default drauf). Für Mac OS muß man meiner Erfahrung nach immer noch das Ganze von Hand durchcompilieren; das dauert dann ca. einen halben Tag, läuft aber anstandslos durch. Auf dieser Download-Seite finden Sie die Pakete für Windows und Mac.

Für die Bearbeitung der Shader-Aufgaben können Sie verschiedene Tools verwenden (s. Vorlesung). Wir würden allerdings, aus verschiedenen Gründen, das "in-house" entwickelte Tool Shader Maker empfehlen.

Hier finden Sie eine kleine Liste mit OpenGL-Materialparametern, die Sie für verschiedene Aufgaben gebrauchen können.

Wer die Entwicklung unter "Mac OS X" machen möchte findet hier eine kurze Anleitung (Dank an Philipp Kraus). Sie behandelt zwar konkret die Arbeit mit einem Raytracing-Framework, aber analog funktioniert es mit allen anderen Programmen ebenso.


Online Literatur und Resources im Internet

Change Monitoring:

 by ChangeDetection (it's free and it's private).
 by ChangeDetect (it's free and private, too).
If you enter your email adress in one of the boxes above and then press one of the "Monitor" buttons, then either ChangeDetection or ChangeDetect will send you an email whenever I make changes to this page.
Gabriel Zachmann
Last modified: Mon Feb 11 13:11:03 MET 2013