Inhalt:
Die Laborübung Computergraphik dient dazu, das Wissen aus der zugehörigen Vorlesung praktisch anzuwenden und zu vertiefen.In der Laborübung sollen sechs aufeinander aufbauende Programmieraufgaben gelöst werden. Dabei werden folgende Themen behandelt:
- Linien zeichnen (line rasterizer).
- 2D/3D Objekt Transformationen.
- Polygon Begrenzung (polygon clipping).
- Virtuelle Kameras, Transformationszusammensetzung und Projektionen. (viewing pipeline, Z-buffer).
- Flächen zeichnen (fill rasterizer).
- Beleuchtung und Schattierung von Flächen (phong & gouraud shading, lambert & phong illumination).
- Texturierung
Durch das sukzessive Lösen der Beispiele wird der Renderer eines simplen, aber kompletten interaktiven 3D Viewers vervollständigt. Übungsziel ist es, einen Überblick über die verschiedenen Komponenten eines solchen Systems zu gewinnen, und ihr Zusammenspiel an einem selbst programmierten Exemplar zu erproben. Das Rendering-System bietet zahlreiche Parametern, die in dem Tool interaktiv manipuliert werden können. Dadurch wird das Verständnis für viele Themen der Vorlesung stark verbessert.
Mehr Informationen zu dem Tool und der Übung sind auf dem CG1LAB-Wiki online gestellt, und werden auch in der LU-Vorbesprechung vorgetragen.
Übungsmodus:
Zu allen 6 oben erwähnten Bereichen sollen im Laufe des Semesters nacheinander Programmieraufgaben in einem von uns vorgegebenen Programmgerüst in Java gelöst werden (die in der LU "Einführung in das Programmieren" erworbenen Kenntnisse sollten dafür ausreichen); die im Zuge dieser Arbeit entstandenen Source-Dateien werden nach dem Ende jeder Aufgabe abgegeben. Die Bewertung findet in 2 Abgabegesprächen statt.Die Laborübung sollte auf dem eigenen Computer gelöst werden, es gibt daher keine Anwesenheitstermine außer den Abgabegesprächen. Es sollte aber möglich sein, die Übungsaufgaben in den Benutzerräumen zu lösen. Gibt es diesbezüglich Probleme, kontaktiert uns bitte!
An- und Abmeldung:
Die Anmeldung zur Laborübung findet durch die Abgabe des 1. Beispiels statt. Dafür müsst ihr euch sowohl in unserem eigenen Abgabesystem, als auch im TISS LVA Nr. 186.095 für die Übung anmelden. Achtung: Es ist aus organisatorischen Gründen sehr wichtig, dass ihr euch in beiden Systemen anmeldet! Nach Ablauf der Anmeldefrist (am 24.10.2011) werden alle Studierenden ausgetragen, die keine gültige Anmeldung im TISS haben.Für die Abmeldung gilt, dass keine Abmeldung von der Laborübung möglich oder erforderlich ist. Stattdessen gilt folgende einfache Regelung: Hat man das 1. Übungsbeispiel abgegeben, gibt es in jedem Fall ein Zeugnis.
Abgabe der Übungsbeispiele:
Alle Abgaben finden über das CG1-Abgabesystem im Web statt. Nach der erstmaligen Anmeldung hat man dort die Möglichkeit, das jeweilige Beispiel abzulegen (und im Abgabezeitraum auch zu überschreiben).Nach der Abgabe wird das Beispiel dann automatisch kompiliert, und man sieht das Kompilationsergebnis gleich im Browserfenster (entweder Erfolg oder die genaue Fehlermeldung).
Es gibt keine Ergebnisse der Abgaben, die Beispiele werden erst in den Abgabegesprächen bewertet. Für eine positive Note müssen aber zumindest 5 von den 6 Beispielen abgegeben werden.
Die Abgabe wird automatisch kompiliert, man sollte sich aber auch vergewissern, welche Dateien wirklich auf dem Abgaberechner gelandet ist! Bei Problemen meldet euch bitte vor dem Abgabetermin per mail, ansonsten können wir eine verspätete Abgabe nicht akzeptieren. Eine Abgabe nach der Veröffentlichung der Musterlösung (jeweils 2 Tage nach der Abgabe) ist natürlich nicht mehr möglich.
Bis zum Abgabetermin kann man ein Beispiel beliebig oft hochladen. Es gilt immer die zuletzt hochgeladene Version.
Repetitorium:
Vor der Abgabe des Beispiels 3 (Termin siehe News) gibt es ein Repetitorium, wo ein paar Dinge erklärt werden und auf alle möglichen Fragen eingegangen wird (auch in Einzelbetreuung!).
Abgabegespräche:
Die Bewertung der abgegebenen Beispiele wird in 2 Abgabegesprächen bei den Assistenten des Instituts durchgeführt; es gibt keine schriftlichen Übungstests. Die Abgabegespräche finden an einigen Tagen während der 2 Wochen, die dem Abgabetermin von Beispiel 3 bzw. 6 folgen, statt. Die genauen Termine erfahrt ihr, sobald ihr euch über das Anmeldesystem anmelden könnt, jeweils 7 Tage vor dem Abgabetermin von Beispiel 3 bzw. 6 (wer sich früh anmeldet, hat mehr Termine zur Auswahl, und die Anmeldefrist wird relativ kurz sein).Zum Abgabegespräch mitzubringen sind ein gültiger Studentenausweis. Wahlweise kann man auch die von einem selbst verfaßten Teile des Source-Codes in ausgedruckter Form mitbringen, das kann die Navigation im Code erleichtern, der Prüfer muß aber nicht darauf eingehen.
Inhalt des Gesprächs sind die selbst programmierten Beispiele, sowie ein genaues Verständnis der Algorithmen und theoretischen Grundlagen auf denen sie beruhen (nur das Verständnis des Code reicht also nicht aus!).
Die Punkte, die man auf ein Abgabegespräch bekommen hat, kann man dann am nächsten Tag im Abgabesystem nachsehen.
Benotung:
Die Punkteaufteilung für die Beispiele sieht folgendermaßen aus:| Beispiel | Punkte |
| 1 | 6 |
| 2 | 8 |
| 3 | 14 |
| 4 | 12 |
| 5 | 12 |
| 6 | 8 |
Die Endnote ergibt sich dann nach folgendem Notenschlüssel:
| Punkte | Note |
| >= 54 | 1 |
| >= 47 | 2 |
| >= 38 | 3 |
| >= 30 | 4 |
| sonst | 5 |
Kommunikation:
Jeder Teilnehmer sollte die LVA im TISS zu den eigenen LVA-Favoriten hinzufügen. Außerdem sollte die E-Mail Benachrichtigung von LVA News in der entsprechenden LVA-Kategorie im TISS aktiviert sein. Informationen über die Laborübung werden auf dieser Webpage kundgetan, worüber ihr dann automatisch über TISS per mail informiert werdet.Jeden Mittwoch 15:00 - 16:00 Uhr (exkl. vorlesungsfreier Tage) stehen Tutoren zur persönlichen Betreuung von Studenten zur Verfügung. Dabei können theoretische Verständnisprobleme oder Schwierigkeiten beim Programmieren gemeinsam besprochen werden. Eine Anmeldung ist nicht notwendig. Die Betreuung findet im Vislab auf dem Institut für Computergraphik statt. Dieser Raum ist auf diesem Lageplan links unten als 186200 VISLAB zu finden.
Als Kommunikationsplattform für die Laborübungsteilnehmer untereinander hat sich die CG1LU-Gruppe im Informatikforum sehr bewährt, wo auch regelmäßig unsere Tutoren zu Eurer Verfügung stehen.
Kurzfristige dringende Neuigkeiten werden als TISS News angkündigt.
Achtung: Dass im Informatik-Forum kein Source-Code gepostet wird stellt für uns eine Grundbedingung für den aktuellen Modus der Lehrveranstaltung dar. Sollte sich jemand nachhaltig nicht daran halten, dann schadet er im Effekt allen anderen Übungsteilnehmern, weil wir dann einerseits die Betreuung im Forum einstellen müssten als auch den Modus der Abgabegespräche entsprechend verschärfen.
Unterlagen:
Als Unterlage dient das Buch, das bei der Vorlesung verwendet wird.Das Programmgerüst:
Das Programmgerüst ist vollständig in Java geschrieben, und besteht aus zwei Teilen: im ersten Teil werden im Zuge der einzelnen Beispiele Ergänzungen vorgenommen. Das betrifft Komponenten, die für das Rendering, simple lineare Algebra und das Datenmodell der Szene verantwortlich sind. Die zu verändernden Codestellen sind in der Angabe markiert, und eine Übersicht dieser Stellen findet sich in Dokumentation zum Programmgerüst. Der zweite Teil beinhaltet die grafische Benutzeroberfläche, Datenanbindung und mehr. Dieser ist von uns implementiert und muss nicht verändert werden. Das Programmgerüst ist im Wiki vollständig dokumentiert und kann auch von dort heruntergeladen werden.Wir haben Musterlösungen zu den Beispielen vorbereitet, die man immer 48h nach dem vorhergehenden Abgabetermin herunterladen kann. Die Musterlösungen dienen einerseits der Kontrolle, andererseits erlauben sie auch, von einer richtigen Lösung für die Implementierung des nächstens Beispiels auszugehen, selbst wenn man beim vorigen Beispiel nicht alles richtig hat. Wer möchte, kann von der 1. Beispielangabe weg mit dem Programmgerüst selbständig alle Beispiele programmieren (auf diese Weise kann man schon vorausarbeiten). Man kann aber auch nach jedem Beispiel von der Musterlösung zum vorigen Beispiel aus weiterprogrammieren (auf diese Weise ist man auf der sicheren Seite).
Abgabetermine:
| Beispiel... | Abzugeben bis (jeweils 23:52 Uhr) | ||
| Beispiel 1 | Line drawing | 14.10.2011 (updated, Achtung: keine Nachfrist!) | |
| Beispiel 2 | 2D/3D object transformations | 24.10.2011 | |
| Beispiel 3 | Clipping, Viewing and Projection | 11.11.2011 | |
| Beispiel 4 | Triangle Rasterization and Visibility | 30.11.2011 | |
| Beispiel 5 | Lighting and Shading | 16.12.2011 | |
| Beispiel 6 | Texturing and Custom Shaders | 13.1.2012 | |
Nachfristen
Es gibt bei jeder Beispielabgabe eine Nachfrist. Konkret kann jedes Beispiel auch bis zum Erscheinen der Musterlösung abgegeben werden. Jedoch gibt es dann Punkteabzüge, und zwar 2 Punkte, wenn man es bis zu 24 Stunden später abgibt, und 3 Punkte wenn man es bis 48h später abgibt.Handhabung der Nachfristen: die Nachfristen werden vom Abgabesystem automatisch kontrolliert (minutengenau!) und die Punkte automatisch notiert. Die Punkte für die Abgabegespräche werden unabhängig von den Abzugspunkten vergeben. Die Abzugspunkte werden am Ende der Laborübung von der Gesamtpunktezahl abgezogen, um die endgültige Note zu ermitteln. Um positiv zu sein, muß man also beide Abgabegespräche jeweils VOR Abzug der Abzugspunkte positiv absolviert haben, sowie die gesamte Laborübung NACH Abzug der Abzugspunkte! Die Abzüge sind auch ihm Abgabesystem ersichtlich.

