CG1 banner

Lernziele

Die Studierenden lernen die Grundlagen der digitalen Bildsynthese kennen. Sie lernen einfache Verfahren zur Bilderzeugung zusammenhängend zu implementieren und anzuwenden.

Inhalte

Das Modul führt in die Grundlagen der digitalen Bildsynthese ein, und behandelt im seminaristischen Unterricht folgende Themen:

  • Trigonometrie, Vektoren, Punkte, Normalen, Oberflächen
  • Koordinatensysteme und Transformationen
  • Licht, Farbe und Rasterbilder
  • Sampling und Aliasing
  • Modellierung und Geometrie
  • Rendering und Ray-Tracing
  • Kameramodelle
  • Beleuchtung, Schattierung und Reflexion
  • Material und Textur

In den Übungen werden die vermittelten Techniken zur Bilderzeugung aufbauend auf den bisher gesammelten Programmiererfahrung von Grund auf implementiert.

Voraussetzungen

Neben den Modulen Mathematik 1 + 2 wird aufgrund des hohen praktischen Programmieranteils in den Übungen und den Hausarbeiten der erfolgreiche Abschluss der Module Programmierung 1 + 2 dringend empfohlen.

Termine

Das Modul wird in diesem Semester 3-zügig angeboten.

Zug Tag Vorlesung Übung Gruppe 1 Übung Gruppe 2
1 Dienstag 08:00 Uhr 10:00 Uhr 12:15 Uhr
2 Mittwoch 12:15 Uhr 08:00 Uhr 10:00 Uhr
3 Donnerstag 10:00 Uhr 12:15 Uhr 14:15 Uhr

Die Übungen sind im Stundenplan als geblockt alle zwei Wochen ausgewiesen. Tatsächlich finden die Übungen nicht geblockt und jede Woche statt, und zwar zu den oben angegebenen Terminen.

Seminaristischer Unterricht

Zug 1 Zug 2 Zug 3 Thema
11.10. 12.10. 13.10. Rasterbilder
18.10. 19.10. 20.10. Antialiasing
25.10. 26.10. 27.10. Raytracing
01.11. 02.11. 03.11. Strahlschnitte
08.11. 09.11. 10.11. Reflexion
15.11. 23.11. 17.11. Transformationen 1
22.11. 30.11. 24.11. Test
29.11. 14.12. 01.12. Transformationen 2
13.12. 21.12. 15.12. Materialien
20.12. Texturen
Winterferien
04.01. 05.01. Texturen
10.01. 11.01. 12.01. Lichtquellen / Beschleunigung
17.01. 18.01. 19.01. Klausurvorbereitung
26.01. 26.01. 26.01. Klausur
02.02. 02.02. 02.02. Rendering Competition, Klausurrückgabe

Übungsaufgaben

Nr. Aufgabe Id Abgabe (Zug 1+3) Abgabe (Zug 2)
1 Rote Scheibe a01 20.10. 23:59 Uhr 27.10. 23:59 Uhr
2 Viele Scheiben a02 27.10. 23:59 Uhr 03.11. 23:59 Uhr ( )
3 Gestreifter Himmel a03 03.11. 23:59 Uhr 10.11. 23:59 Uhr
4 Unbeleuchteter Planet a04 10.11. 23:59 Uhr 17.11. 23:59 Uhr ( )
5 Beleuchteter Planet a05 24.11. 23:59 Uhr 01.12. 23:59 Uhr
6 Bewegliche Kamera a06 08.12. 23:59 Uhr 15.12. 23:59 Uhr
7 Instanziierung a07 15.12. 23:59 Uhr 22.12. 23:59 Uhr
8 Metall und Glass a08 05.01. 23:59 Uhr 05.01. 23:59 Uhr
9 Wolken am Himmel a09 12.01. 23:59 Uhr 12.01. 23:59 Uhr
10 Licht und Schatten a10 19.01. 23:59 Uhr 19.01. 23:59 Uhr
11 Bonusaufgaben b[1-4] 02.02. 23:59 Uhr 02.02. 23:59 Uhr
11 Rendering Competition c01 30.01. 23:59 Uhr 30.01. 23:59 Uhr

Die mit markierten Aufgaben sind Pflichtaufgaben (Siehe auch Bewertung und Notenbildung).

Package cgtools

Das Java Package cgtools enthält den Source Code für einige nützliche Klassen, die bei der Bearbeitung der Aufgaben verwendet werden können.

Das Package enthält folgende Klassen:

  • cgtools.Random - Ein schnellerer Xorshift-Zufallszahlengenerator
  • cgtools.Image - RGB-Rasterbilder mit 16-bit Komponenten
  • cgtools.ImageTexture - Laden von RGB-Rasterbildern und Verwendung als Texturen
  • cgtools.Mat4 - Operationen auf 4x4 Matrizen
  • cgtools.Vec3 - Dummy-Implementierung von 3D-Vektoren

Abgabe von Übungsaufgaben

Die Abgabe der Übungsaufgaben erfolgt ausschließlich über ein Repository auf dem Gitlab Server des CGM Labors. Eine Abgabe ist ein mit einem Tag versehener Commit. Der Name des Tags ist folgendermaßen aufgebaut:

  • abgabe-Id (Id ist die Id der Aufgabe)

Zum Umgang mit Git gibt es auch einige Git Tipps .

Der Zeitstempel des Tags ist entscheidend für die rechtzeitige Abgabe einer Aufgabe. Der Abgabestatus kann jederzeit online eingesehen werden:

Projektstruktur

Die Projektstruktur für die Bearbeitung der Übungsaufgaben ist fest vorgegeben.

Bewertung und Notenbildung

Für die erfolgreiche Bearbeitung der Übungsaufgaben werden Punkte vergeben. In der Mitte des Semesters wird ein Test, am Ende des Semesters wird eine Klausur geschrieben. Diese werden ebenfalls mit Punkten bewertet. In der Summe sind mit Übungsaufgaben, Test und Klausur 100 Punkte erreichbar.

Leistung Pflicht Punkte
Aufgabe 1 6
Aufgabe 2 6
Aufgabe 3 6
Aufgabe 4 6
Aufgabe 5 6
Aufgabe 6 6
Aufgabe 7 6
Aufgabe 8 6
Aufgabe 9 6
Aufgabe 10 6
Test 10
Klausur 30
Summe 100

Aktueller Punktestand

Der aktuelle Punktestand auf Basis der Abgegebenen Aufgaben und aller sonst bisher erfasster Leistungen kann online eingesehen werden.

Übungsaufgaben

Jede Aufgabe ist mit einem festen Abgabetermin versehen. Eine erfolgreiche Abgabe erfolgt spätestens bis jeweils Donnerstag, 23:59 Uhr und wird mit 6 Punkten vergütet. Die um eine Woche verspätete Abgabe ist möglich, wird aber nur mit 3 Punkten vergütet. Danach gilt die Aufgabe als nicht erfolgreich abgegeben.

Pflichtaufgaben

Die ersten sechs der 10 Aufgaben (1, 2, 3, 4, 5 und 6) sind Pflichtaufgaben, und müssen erfolgreich abgegeben werden. Wird eine dieser Pflichtaufgaben nicht erfolgreich abgegeben, gilt das gesamte Modul als nicht bestanden.

Überprüfung

Jede Woche werden zwei Abgaben pro Übungsgruppe in einem Gespräch überprüft. Die Überprüfung wird den ausgewählten Teilnehmern am Tag vor dem Übungstermin angekündigt.

Ziel des Gesprächs ist die Bestätigung der Autorenschaft. Dazu werden 3 individuell vorbereitete Fragen zur Implementierung gestellt. Werden mindestens zwei der Fragen überzeugend beantwortet, gilt die Aufgabe weiterhin als erfolgreich bearbeitet. Anderenfalls gilt die Aufgabe als nicht gelöst. Dem dadurch entstehenden Plagiatsverdacht wird dann nachgegangen.

Plagiate

Plagiate werden bei erstmaliger Entdeckung für alle Beteiligten mit 10 Strafpunkten geahndet. Beim zweiten Mal erfolgt der Ausschluss vom Modul mit der Modulnote 5.0 und die offizielle Meldung des Betrugsversuchs an die relevanten Gremien der Hochschule.

Klausur und Test

In der Mitte des Semesters findet ein 30 minütiger Test statt, am Ende des Semesters wird eine 90 minütige Klausur geschrieben.

Die Teilnahme an Test und Klausur ist nicht verpflichtend. Es gibt keine zu erreichende Mindestpunktzahl.

Zusätzliche Bonuspunkte

Durch die Erbringung zusätzlicher Leistungen können Bonuspunkte erlangt werden. Die zusätzlichen Leistungen werden auf Anfrage in den Übungen abgenommen. Weitere mögliche Zusatzleistungen werden semesterbegleitend bekannt gegeben.

Zusätzliche Leistung Punkte
Vorrechnen an der Tafel 1
Lösung der Bonusaufgaben jeweils 6
Teilnahme am Finale der Rendering Competition 2
1. Platz Rendering Competition 10
2. Platz Rendering Competition 5

Rendering Competition

Semesterbegleitend wird eine Rendering Competition ausgetragen. Jeder Teilnehmer reicht ein Bild oder eine Animation ein. Am Ende des Semesters werden die Beiträge bewertet, und der Sieger bestimmt.

Die Rendering Competition wird über alle drei Züge ausgetragen. In einer Vorausscheidung werden durch eine Jury 9 Finalteilnehmer ermittelt. In der Endausscheidung werden die Einträge jeweils von den Autoren kurz (1 Minute) vorgestellt. Dann erfolgt die geheime Wahl des Siegers durch alle Anwesenden.

Notenspiegel

Die Gesamtnote wird nach folgendem Schema aus der Summe der erlangten Punkte berechnet.

Punkte >= 95 90 85 80 75 70 65 60 55 50 0
Note 1.0 1.3 1.7 2.0 2.3 2.7 3.0 3.3 3.7 4.0 5.0

Accounts im CGM Labor

Für die Rechner im CGM Labor benötigen Sie einen persönlichen Account. Dieser wird zu Beginn des Semesters aus den Beleglisten erzeugt. Der Benutzername ist dabei Ihre Matrikelnummer. Das Passwort muss bei der ersten Anmeldung gesetzt werden.

Literatur

  • Shirley, Peter and Marschner, Steve. Fundamentals of computer graphics. A. K. Peters, Ltd. Website.

Links

Source Code

Git Version Control

Git Clients