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 2-zügig angeboten.
Zug | Tag | SU | Übung Gruppe a | Übung Gruppe b |
---|---|---|---|---|
1 | Dienstag | 08:00 Uhr | 10:00 Uhr | 12:15 Uhr |
2 | Mittwoch | 12:15 Uhr | 14:15 Uhr | 16:00 Uhr |
Seminaristischer Unterricht
HTML Folien
Die Foliensätze werden als interaktive HTML-Dokumente (mit reveal.js) bereit gestellt. Wichtige Tastenkürzel:
- ⇦, ⇨ — Vorherige, nächste Folie
- ⎋ — Übersicht
Folien als PDF
Die automatische Generierung von PDFs is leider kaputt. PDF-Versionen der Foliensätze können mit Google Chrome selbst erzeugt werden:
- Foliensatz in Google Chrome öffnen
?print-pdf
an den URL-Pfad anhängen- Datei > Drucken …
- Ziel auswählen > Als PDF speichern …
Übungsaufgaben
Zu jedem Seminaristischen Unterricht gibt es eine Übungsaufgabe. Die Abgabe der Aufgabe erfolgt jeweils eine Woche später am Tag der Übung bis 23:59 Uhr.
Die mit markierten Aufgaben sind Pflichtaufgaben (Siehe auch Bewertung und Notenbildung).
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 mit dem Tag versehenen Commits ist entscheidend für die rechtzeitige Abgabe einer Aufgabe.
Der aktuelle Abgabestatus und der aktuelle Punktestand können jederzeit online eingesehen werden:
Projektstruktur
Die Projektstruktur für die Bearbeitung der Übungsaufgaben ist fest vorgegeben.
Das Musterprojekt cgg-abgaben
wird als Grundlage für die Bearbeitung der
Aufgaben bereitgestellt.
Paket cgtools
Das Musterprojekt enthält auch das Java-Paket cgtools
mit dem Source Code für
einige nützliche Klassen, die bei der Bearbeitung der Aufgaben verwendet werden
können.
Das Paket enthält folgende Klassen:
cgtools.Random
- Ein schneller Xorshift-Zufallszahlengeneratorcgtools.ImageWriter
- Speichert RGB-Rasterbilder im PNG-Format mit 16-bit pro Komponentecgtools.ImageTexture
- Laden von RGB-Rasterbildern und Verwendung als Texturencgtools.Mat4
- Operationen auf 4x4 Matrizencgtools.Vec3
- Operationen auf 3D-Vektoren
Bewertung und Notenbildung
Für die erfolgreiche Bearbeitung der Übungsaufgaben werden Punkte vergeben. Am Ende des Semesters wird eine Klausur geschrieben. Diese wird ebenfalls mit Punkten bewertet. In der Summe sind mit Übungsaufgaben und Klausur 100 Punkte erreichbar.
Leistung | Pflicht | Punkte |
---|---|---|
Aufgabe 1 - 6 | je 5 | |
Aufgabe 6 - 12 | je 5 | |
Klausur | 40 | |
Summe | 100 |
Übungsaufgaben
Jede Aufgabe ist mit einem festen Abgabetermin versehen. Eine erfolgreiche Abgabe erfolgt spätestens bis zum angegeben Abgabetermin und wird mit 5 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 12 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 einige individuell vorbereitete Fragen zur Implementierung gestellt. Werden die Fragen überzeugend beantwortet, gilt die Aufgabe als erfolgreich bearbeitet. Anderenfalls gilt die Aufgabe als nicht gelöst. Dem dadurch eventuell entstehenden Verdacht eines Betrugsversuchs wird dann nachgegangen.
Klausur
Die Teilnahme an Test und Klausur ist nicht verpflichtend. Die Anwesenheit beim Klausurtermin gilt als Teilnahme.
Rendering Competition
Im Rahmen der letzten Übungsaufgabe wird eine Rendering Competition ausgetragen. Jeder Teilnehmer reicht ein Bild oder eine Animation als Wettbewerbsbeitrag ein. In der letzten Veranstaltung des Semesters werden die Beiträge bewertet, und der Sieger bestimmt.
Die Rendering Competition wird über alle 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.
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. Mögliche Zusatzleistungen werden semesterbegleitend bekannt gegeben.
Zusätzliche Leistung | Punkte |
---|---|
Lösung der Bonusaufgaben | jeweils 5 |
1. Platz Rendering Competition | 10 |
2. Platz Rendering Competition | 5 |
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 |
Betrugsversuche
Betrugsversuche 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.
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.
- Suffern, Kevin. Ray Tracing from the Ground Up. A. K. Peters, Ltd. Website