Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS letzte Änderung am 2002-01-15, im Text gekennzeichnet durch rote Schrift
Jörn Loviscach

ECG Einführung in die Computergrafik
alias DM-201 Computergrafik

Vorlesung: Mittwoch, 13.30-15.00 Uhr, Raum E407
Labor: Donnerstag 14-täglich, 13.30-16.45 Uhr, Raum E306B
Abweichungen siehe unten

Pflichtfach für das Vordiplom im Diplomstudiengang Medieninformatik
Pflichmodul für den Bachelor-Studiengang Medieninformatik (Digitale Medien)
Wahlpflichtmodul für den Bachelor-Studiengang Mediengestaltung (Digitale Medien)

Lernziele

Voraussetzungen

Diplomstudiengang Medieninformatik: bestandene Prüfungen in MAI 1 und GDI dringend empfohlen
Bachelor-Studiengang Medieninformatik (Digitale Medien): DM-101 und DM-103 erfolgreich absolviert

Prüfungsleistungen

Mit Hilfe der Software-Entwicklungsarbeit im Laborteil sollen die Studierenden ihr Verständnis vertiefen und gleichzeitig unter Beweis stellen.

Unterrichtsform

Die Vorlesung ist seminaristisch; ich werde also versuchen, den Stoff im Gespräch mit Ihnen zu erarbeiten. Wenn Sie nicht folgen können, bremsen Sie mich sofort, indem Sie nachfragen. Das ist eine strikte Anweisung an Sie, keine freundliche Empfehlung. Sie können davon ausgehen, dass andere Studenten dieselben Probleme haben, das aber nicht kundtun. Um eine Frage zu stellen, müssen Sie sich nicht mit Handzeichen melden. Unterbrechen Sie mich einfach bei der nächstmöglichen Gelegenheit.

Sollten Fragen außerhalb von Vorlesung oder Labor auftreten, mailen Sie mich einfach an. Meine Reaktionszeit beträgt typischerweise nur wenige Stunden, auch am Wochenende.

Wenn Sie Wünsche oder Ideen zu Inhalt und Ablauf haben, lassen Sie es mich wissen. Im Sinne einer formativen Evaluation plane ich außerdem regelmäßige kurze Umfragen und anonyme Tests.

Die Anwesenheit in der Vorlesung ist gemäß der Prüfungsordnung nicht verpflichtend, im Unterschied zur Anwesenheit beim Labor. Allerdings habe ich in den vergangenen Semestern Folgendes festgestellt: Wer sich an den Laboraufgaben versucht, ohne die Vorlesung zu hören, muss ein Vielfaches an Zeit investieren.

Skript

Meine Unterlagen scanne ich ein und stelle sie ebenso wie vorgeführte Beispielprogramme zum Download bereit. (Anmerkung: Die Seiten etwa mit pdfTeX und einem Grafikprogramm sauber aufzubereiten, würde mich mehrere Stunden pro Vorlesung kosten. Diese Zeit möchte ich lieber dazu benutzen, mit Ihnen und am Inhalt zu arbeiten.) Eingeschobene Seiten sind nach dem Muster 10, 10a, 10b, 11 nummeriert. Ändere ich Skripte im Nachhinein, insbesondere wegen Fehlern, stelle ich zusätzlich eine kommentierende Datei changes.html in das jeweilige Verzeichnis.

Labor: Formales

Die Aufgaben sind von jedem Teilnehmer einzeln abzugeben. Ich weiche dieses Semester aus zwei Gründen von den üblichen Zweiergruppen ab: Die Gruppeneinteilung sowie die Verteilung auf die 14-täglichen Labortermine A und B (siehe Terminplan) geschieht im ersten Vorlesungstermin.

Die erste Aufgabe dient zur Probe; ich rechne sie nicht in die Note ein. Nach der ersten Aufgabe gebe ich eine Liste zur verbindlichen Anmeldung herum. Wer sich in diese Liste einträgt, erhält auf jeden Fall am Semesterende eine Note, sonst niemand. Haben Sie sich angemeldet, ist die Anwesenheit bei den Laborterminen für Sie verpflichtend, außer:

Bei fortgesetzter unentschuldigter Abwesenheit muss ich Ihre Leistung im Laborteil mit der Note 5,0 beurteilen. Wegen erlaubter Abwesenheit nicht erbrachte Leistungen sind schnellstmöglich nachzuholen. Die Abgabefristen für jede Aufgabe einschließlich der Dokumentation (s.u.) ergeben sich aus der Terminliste unten. Verspätete Abgabe führt zu Punktabzug.

Labor: Aufgaben

Jeder Labortermin soll dazu dienen, dass Sie zum einen mir ihre Lösung der jeweils alten Aufgabe präsentieren (ich stelle Ihnen Fragen dazu) und zum anderen mit der nächsten Aufgabe beginnen. Ich erwarte, dass Sie einen Großteil der Arbeit in den 14 Tagen zwischen den Laborterminen erledigen. Bei Problemen mailen Sie mich an. Die Fragen, die Sie mir stellen, haben keinen Einfluss auf die Benotung. Ich werde aber darauf achten, Ihnen nur Denkanstöße z.B. zur Fehlersuche zu geben, keinesfalls fertige Lösungen.

Damit Sie nicht nur auf den Rechnern des Softwaretechnik-Labors arbeiten können, sondern auch zu Hause oder auf einem Notebook, habe ich als Grundlage kostenlose Software ausgesucht:

Alternative Entwicklungsumgebungen z.B. für Mac OS X® sind nach Absprache möglich. Um Sie aber nicht in Versuchung zu führen, Raubkopien zu verwenden, werde ich keine Lösungen auf Basis von Microsoft® Visual C++® akzeptieren.

Für die Aufgaben ist gemäß der Prüfungsordnungen nicht nur der Quellcode abzugeben, sondern eine komplette Dokumentation, also zusätzlich:

Die Dokumentation können Sie mit einem simplen Texteditor oder HTML-Editor und eingescannten Handzeichnungen verfassen; eine elektronische Version ohne Papierausdruck genügt mir. Microsoft® Word® missbillige ich ausdrücklich. Wenn Sie unbedingt ein monströses Textverarbeitungsprogramm benutzen müssen, nehmen Sie das kostenlose Sun® StarOffice®.

Die Dokumentation haben Sie selbst zu verfassen, ohne fremdes Bild- oder Textmaterial (abgesehen vom Text der Aufgabenstellung). Aber ich ermuntere Sie ausdrücklich, sich zur Aufgabenlösung umfassend zu informieren (Kommilitionen, Internet, Bücher etc.). Allerdings müssen Sie angeben, welches Material in Ihrem Programm aus welchen fremden Quellen stammt. Verstöße dagegen werte ich als Betrugsversuch. Außerdem befrage ich Sie bei der Präsentation über Ihr Programm, um festzustellen, ob Sie es auch verstehen.

Labor: Bewertung

Für jede Aufgabe vergebe ich 0 bis 3 Punkte, und zwar die kleinste Punktzahl aus den Kategorien folgender Tabelle:
 
Punkte Problemlösung Struktur Bezeichner Kommentare Dokumentation
0 wesentlicher Teil fehlt konfus konfus praktisch nicht vorhanden wesentlicher Teil fehlt
1 weitgehend, aber z.B. wichtige Ausnahmefälle nicht oder unkorrekt behandelt teilweise logische Mängel teilweise verwirrend jede Klasse und jede nichttriviale Methode erklärt weitgehend, aber z.B. wichtige Ausnahmefälle nicht behandelt
2 praktisch vollständig logisch verständlich zusätzlich: alle kritischen Stellen kommentiert. praktisch vollständig
3 vollständig modular, leicht erweiterbar selbsterklärend zusätzlich: alle nicht auf den ersten Blick einleuchtenden Stellen kommentiert. vollständig

Ergeben sich in allen Kategorien drei Punkte und geht das Programm deutlich über die Aufgabenstellung hinaus, indem es z.B. eine erweiterte Funktionalität bereitstellt, etwa Exceptions oder überladene Operatoren sinnvoll nutzt oder gestalterisch hochwertig dokumentiert ist, vergebe ich vier Punkte.

Wer bei jeder Aufgabe exakt einen Punkt erzielt, besteht den Laborteil mit der Note 4,0.

Literaturtipps

Material im Web

Termine

03.10. Mi Tag der deutschen Einheit
04.10. Do kein Labor vor erster Vorlesung
10.10. Mi Überblick; Bitmapbild, Vektorgrafik, 3D-Szene, Zeitablauf; optische Wahrnehmung, Farbmodelle; Einteilung der Labor-Gruppen
11.10. Do verlegt auf 15.10./18.10. wegen Terminkollision
15.10. Mo Labor, 11.30-13.00 Gruppen A, 13.30-15.00 Gruppen B: Umgang mit JBuilder, Debugging
17.10. Mi Beispiel von 2D-Grafikschnittstellen: Java2D, PostScript
18.10. Do Labor, 13.30-15.00 Gruppen A, 15.15-16.45 Gruppen B: Umgang mit Dev-C++ und Insight Debugger, C++-Grundlagen
24.10. Mi verlegt auf 13.11. wegen Terminkollision
25.10. Do Labor, Gruppen A: "Java contra C++"
31.10. Mi Ereignisgesteuerte Programmierung grafischer Oberflächen: Swing, GLUT
01.11. Do Labor, Gruppen B: "Java contra C++"
07.11. Mi Filter und Effekte auf Bitmap-Basis, Antialiasing, Interpolation
08.11. Do Labor, Gruppen A: "Bitmap-Effekte"; Abgabe "Java contra C++"
13.11. Di Raum 402, 15.15-16.45, Hermite-Kurven, Bézier-Kurven und ihre Wiedergabe; Grundlagen von B-Spline- und NURBS-Kurven
14.11. Mi Perspektive, Projektionsarten; 3D-Liniengrafik mit OpenGL
15.11. Do Labor, Gruppen B: "Bitmap-Effekte"; Abgabe "Java contra C++"
21.11. Mi homogene Koordinaten: Projektionsformeln, Verkettung von 3D-Transformationen, Modelview-Matrix von OpenGL
22.11. Do Labor, Gruppen A: "Perspektive"
28.11. Mi z-Sortierung; z-Buffer am Beispiel von OpenGL; Backface Culling
29.11. Do Labor, Gruppen B: "Perspektive". Abgabetermin "Bitmap-Effekt" für Gruppen A
05.12. Mi Lambert-Schattierung und Phong-Glanzlichter in OpenGL; Gouraud- und Phong-Interpolation; Bestimmung der Vertexnormalen
06.12. Do Labor, Gruppen A: "Zufallsuniversum"; Abgabetermin "Bitmap-Effekt" für Gruppen B
12.12. Mi Texturierung: Farbe, Bump, Displacement etc.; Projektionsarten; MIP Map; Grundlagen prozeduraler Texturen
13.12. Do Labor, Gruppen B: "Zufallsuniversum"; Abgabetermin "Perspektive" für Gruppen A
19.12. Mi 3D-Modellierung, Teil 1: explizite Flächen f(x,y), parametrische Grundkörper, Boundary Representation, Boolesche Operationen
20.12. Do Abgabetermin "Perspektive" für Gruppen B; Labor Gruppen A verlegt auf 10.01. wegen Terminkollision
09.01. Mi Verlegt auf N.N. wegen Terminkollision
10.01. Do Labor, Gruppen A und B: "Modelle und Texturen"
16.01. Mi schon um 11.30. 3D-Modellierung, Teil 2: Spline-Flächen, Subdivision Surfaces, Metaballs und andere implizite Flächen (Marching Cubes); Grundlagen der Animation
17.01. Do Labor, Gruppen A. Abgabetermin "Zufallsuniversum" für Gruppen A.
23.01. Mi schon um 11.30. Immediate Mode/Retained Mode; Szenengraphen, Java3D; Fotorealismus: Raytracing, Radiosity-Grundlagen
24.01. Do Labor, Gruppen B. Abgabetermin "Zufallsuniversum" für Gruppen B
31.01. Do Abgabetermin "Modelle und Texturen" für Gruppen A
07.02. Do Abgabetermin "Modelle und Texturen" für Gruppen B