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

ECG Einführung in die Computergrafik
alias DM-301-1 Computergrafik

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

Termine:
Mittwoch, 9.45 bis 11.15 Uhr, Raum I032a
Labor vierzehntäglich: Donnerstag, 8.00 bis 11.15 Uhr, Raum I220

Lernziele

Voraussetzungen

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

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.

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, siehe Unterverzeichnis. (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 (siehe Unterverzeichnis) können und sollen in Zweiergruppen bearbeitet werden. Einzelarbeit ist möglich; aber ich werde keine Abstriche bei den Anforderungen machen. Ich werde Sie im Labor interviewen, um festzustellen, ob die Einzelleistung der Gruppenleistung entspricht. Gruppen mit drei oder mehr Teilnehmern sind nicht möglich. Ich ermuntere Sie ausdrücklich, sich zur Aufgabenlösung umfassend zu informieren und auszutauschen (Kommilitionen, Internet, Bücher etc.). Aber ich erwarte, dass jede(r) seine Lösung versteht. Das werde ich durch Nachfragen prüfen. Selbstverständlich: Fremdes Material in Programmen oder Dokumentationen ist deutlich als solches zu deklarieren; alles andere wäre ein Betrugsversuch. Die Anwesenheit bei den Laborterminen ist 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.

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.

Im Labor ist als Entwicklungsumgebung das kostenlose SharpDevelop installiert. Eine bessere und für die Arbeit zu Hause ebenfalls kostenlose Alternative ist Borland® C# BuilderTM Personal Edition. Zusätzlich benötigt werden die .NET Runtime, das .NET SDK und das DirectX® 9 SDK, alles kostenlose Downloads von Microsoft® .

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

Die Dokumentation verfassen Sie als schlankes HTML, ggf. mit eingescannten Handzeichnungen; bitte nur eine elektronische Version ohne Papierausdruck. Microsoft® Word® missbillige ich ausdrücklich. Wenn Sie unbedingt ein monströses Textverarbeitungsprogramm benutzen müssen, nehmen Sie das kostenlose OpenOffice.org.

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 vollständig, aber z.B. wichtige Ausnahmefälle nicht oder unkorrekt behandelt
teilweise logische Mängel
stellenweise verwirrend
jede Klasse und jede nichttriviale Methode mit extrahierbaren Kommentaren (für C# also XML) erklärt
weitgehend vollständig, aber z.B. den Umgang mit wichtigen Ausnahmefälle nicht behandelt
2
praktisch vollständig
logisch (meist heißt das: korrekt objektorientiert)
verständlich
zusätzlich: alle nicht auf den ersten Blick einleuchtenden Stellen kommentiert. (Wenn es keine solchen Stellen gibt: Um so besser! Nicht jede Zeile kommentieren.)
praktisch vollständig
3
vollständig
modular, leicht erweiterbar
selbsterklärend
zusätzlich: wesentliche Algorithmen in Kommentaren beschrieben
erschöpfend

Ergeben sich in allen Kategorien drei Punkte und geht das Programm deutlich über die Aufgabenstellung hinaus, indem es z.B. eine deutlich erweiterte Funktionalität bereitstellt, Exceptions oder überladene Operatoren sinnvoll nutzt und/oder gestalterisch den üblichen Rahmen sprengt (gerne auch in der Dokumentation), vergebe ich vier Punkte.

Wer bei jeder Aufgabe exakt einen Punkt erzielt, besteht den Laborteil mit der Note 4,0. Überall vier Punkte ergibt eine 1,0. Der Rest liegt linear dazwischen.

Literaturtipps

Material im Web

Termine

08.10. Mi Überblick: Modellierung, Animation, Rendering 
09.10. Do kein Labor in erster Woche
15.10. Mi verlegt auf 26.01. wegen Terminkollision
16.10. Do verlegt auf 25.11. wegen Terminkollision
22.10. Mi optische Wahrnehmung, Farbmodelle; Bitmapbild, Film, Vektorgrafik, 3D-Szene, Animation, Interaktion; Beispiele für Grafikdateiformate: BMP, JPEG, PS, OBJ
23.10. Do Labor, Gruppen A: Einführung in C#, .NET, Windows Forms und SharpDevelop
29.10. Mi 2D-Grafikprogrammierung mit GDI+ unter C#; Filter und Effekte auf Bitmap-Basis
30.10. Do Labor, Gruppen B: Einführung in C#, .NET, Windows Forms und SharpDevelop 
05.11. Mi Assert, Trace; Zeigerarithmetik in C#; Antialiasing, Interpolation
06.11. Do Labor, Gruppen A: Bitmap-Effekte
12.11. Mi verlegt auf 27.01. wegen Terminkollision
13.11. Do Labor verschoben wegen Probelehrveranstaltungen (8 Uhr in I-122, 10 Uhr in I-032a)
19.11. Mi weiter Antialiasing und Interpolation; Hermite-Kurven, Bézier-Kurven und ihre Wiedergabe; Grundlagen von B-Spline- und NURBS-Kurven
20.11. Do Labor, Gruppen A: Kurven; Abgabe Bitmap-Effekte
25.11. Di 2.+3. Block Labor, Gruppen B: Bitmap-Effekte
26.11. Mi Grundlagen Managed DirectX; Perspektive, Projektionsarten
27.11. Do Labor, Gruppen B: Kurven
03.12. Mi homogene Koordinaten: Projektionsformeln, Verkettung von 3D-Transformationen, Matrizen
04.12. Do Labor, Gruppen A: Perspektive; Abgabe Kurven
10.12. Mi Verdeckungsberechnung, z-Buffer; Backface Culling; Double Buffering
11.12. Do Labor, Gruppen B: Perspektive; Abgabe Kurven, Abgabe Bitmap-Effekte
17.12. Mi Beleuchtung; diffuse und glänzende Reflexion; Gouraud- und Phong-Interpolation; Bestimmung der Vertexnormalen
18.12. Do Labor, Gruppen A: Zufallsuniversum
07.01. Mi 3D-Modellierung, Teil 1: explizite Flächen f(x,y), parametrische Grundkörper, Boundary Representation, Boolesche Operationen
08.01. Do Labor, Gruppen B: Zufallsuniversum; Abgabe Perspektive
14.01. Mi Texturierung: Farbe, Bump, Displacement etc.; Projektionsarten; MIP-Map; Alpha-Blending
15.01. Do Labor, Gruppen A: Texturierte Szene; Abgabe Zufallsuniversum, Abgabe Perspektive
21.01. Mi 3D-Modellierung, Teil 2: Spline-Flächen, Subdivision Surfaces, Metaballs und andere implizite Flächen (Marching Cubes)
22.01. Do Labor, Gruppen B: Texturierte Szene; Abgabe Zufallsuniversum
26.01. Mo 11.30, I012: 3D-Animation: Keyframes, Funktionskurven, hierarchische Animation; Interpolation von Rotationen
27.01. Di 9.45, I012: Fotorealismus: Raytracing, Radiosity-Grundlagen
28.01. Mi Immediate Mode/Retained Mode, Szenengraphen; 3D-Dateiformate; Vertex- und Pixel-Shader
29.01. Do Labor: Abgabetermin "Texturierte Szene" für Gruppen A
05.02. Do kein Labor, dennoch Abgabetermin "Texturierte Szene" für Gruppen B