Inhalte:
Diese VU soll einen Einblick in das Gebiet der Echtzeitgraphik bieten, die in der Virtual Reality und in Computerspielen Anwendung findet. Die Themengebiete sind unter anderem:- Architektur von Graphikhardware
- Optimierung
- Advanced Lighting and Shading
- Shading Languages
- Graphics Programming (OpenGL 1.0-3.0, DirectX, ...)
- Real-time Shadows
- Culling and Visibility
- Levels of Detail and Terrain Rendering
- Image-based Rendering
Ort und Zeit:
MittwochTermine:
Einteilung:5., 12., 19. Oktober 2011
9., 16., 23., 30. November 2011
7., 14. Dezember 2011
11., 18. Jänner 2012
25. Jänner, 13:00-16:00: Präsentation der Übungsprojekte (keine Prüfung!)
Termine für den Übungsteil:
Nähere Infos zum Übungsteil siehe unten, hier die wichtigsten Termine:10.11.2011: 15:00-17:00 Repetitorium im Seminarraum 186
25.11.2011: 1. Abgabe: Gruppenvorschlag sowie die Rendering-Engine (Abgabemodalitäten: siehe Übungsteil)
18.1.2012: 2. Abgabe: fertiges Projekt (Abgabemodalitäten: siehe Übungsteil)
25.1.2012, 13:00-16:00: Präsentation der Übungsprojekte
Modus:
Die VU besteht aus ca. 10-12 Vorlesungseinheiten und einem praktischen Übungsteil, in dem alleine oder in Zweiergruppen ein oder mehrere kleine Effekte aus der Vorlesung implementiert werden sollen. Näheres siehe weiter unten.Beurteilung:
Die Note setzt sich aus dem Übungsteil, der durch eine kleine Präsentation am Ende des Semesters abgeschlossen wird, und einer mündlichen Prüfung nach Ende der Vorlesung zusammen. Bei der Präsentation bitte keine Folien vorbereiten, sondern einfach das Demo starten und kommentieren.Prüfungstermine
Prüfungstermine werden nach der Vorlesung im Februar über das Anmeldesystem vergeben, danach per Vereinbarung per email an den Vortragenden.Unterlagen:
Als Unterlagen dienen die Folien zur Vorlesung. Sie werden laufend aktualisiert.Als ausgezeichnete Ergänzung empfiehlt sich das Buch "Real-Time Rendering, Third Edition", von Tomas Akenine-Möller und Eric Haines, erschienen im A K Peters-Verlag, 2002 (ISBN: 987-1-56881-424-7).
Kommunkation
Abonniert bitte unbedingt in TUWIS diese LVA, und aktiviert in den TUWIS-Einstellungen die Option "LVA-News per Email erhalten". Dadurch werdet Ihr immer über wichtige Informationen auf dem Laufenden gehalten (Software-Updates, Verfügbarkeit der Ergebnisse, Terminverschiebungen usw.), die wir auf der Webpage ankündigen.Als Kommunikationsplattform nutzen wir die Echtzeitgraphik VU Gruppe im Informatik-Forum. Dort könnt Ihr untereinander diskutieren (z.B. Partnersuche für den Übungsteil, Diskussion über Techniken etc). Dort sind auch regelmäßig unsere Tutoren aktiv, um Fragen zu beantworten.
Übungsteil
Der Übungsteil steht unter dem Motto "Demo-Programmierung". Schreibt also in 2er-Gruppen ein kleines Demo, das zumindest zwei Effekte aus dem Vorlesungsteil demonstriert. Originalität beim Demo (im Sinne der "Demo-Szene") wird ebenfalls belohnt!Damit Ihr Euch den besser vorstellen könnt, was so ein Demo sein kann, haben wir ein kleines Demo mit Erläuterungen für Euch vorbereitet: Ride To Fail.
Die Effekte können durchaus auch über das hinausgehen, was in der Vorlesung gemacht wurde. Allerdings gibt es auch ziemlich viel "prior art", das heißt es kursieren schon viele Shader im Netz oder sind beim Cg Toolkit, nVidia SDK und DX SDK dabei. Ihr solltet Euch ein Thema auswählen, wo man schon noch etwas selber machen muß. Deshalb solltet Ihr alle Quellen (Tutorials, Beispielshader usw.), die Ihr verwendet habt, in der Dokumentation angeben. Weiters sollte zumindest 1 Effekt dabei sein, der in der Vorlesung behandelt wurde. Die genaue Anzahl der erforderlichen Effekte hängt natürlich auch vom Schwierigkeitsgrad ab, dazu geben wir euch nach der 1. Abgabe genaueres Feedback!
Die Abgabemodalitäten sind ähnlich wie bei der CG2-Laborübung. Das heißt im Speziellen:
- Sucht Euch einen Gruppennamen aus (z.B. "juggernaut"). In der Regel ist die Gruppengröße 2 Personen, Ausnahmen vorher absprechen!
- Der Name Eures Abgabefiles sollte dann "1juggernaut.zip" für den Projektvorschlag, und "2juggernaut.zip" für das fertige Demo sein. Sollten Nachbesserungen notwendig sein, dann hängt noch Zahlen an, also z.B. "2juggernaut_1.zip" usw.
- Die Abgabe erfolgt per upload über dieses Formular, login: cg23/cg23lu. Solltet ihr Probleme mit dem Upload haben, dann habt ihr vielleicht spaces oder Sonderzeichen im Dateinamen (bitte nur Klein- und Grossbuchstaben sowie Ziffern und _ bzw - im Dateinamen verwenden). Ansonsten könnt ihr die Dateien auf euren Webspace hochladen und im Forum einen Link setzen.
- Die .zip-Datei sollte eine readme.txt-Datei mit Euren Namen, Matrikelnummern, Studienkennzahlen usw. enthalten, sowie eine kleine Dokumentation des Programms.
- Wichtig: nennt auch die Systemvoraussetzungen: Wir werden die Programme auf einem Core 2 Duo mit einer nVidia GeForce 460 GTX Grafikkarte testen, das heißt ATI-spezifische Effekte werden wir uns kaum anschauen können.
- Eine ausführbare Version des Projekts sollte im /bin-Verzeichnis sein, Source-Code im /src-Verzeichnis, Dokumentation im /doc-Verzeichnis.
- Sorgt dafür, dass alle zur Ausführung notwendigen Dateien (also libraries, also besonders deren .dll-Dateien - das heißt z.B. auch glut32.dll!) beigefügt sind!
- Löscht alle temporären Compiler-Dateien (.obj, .pdb etc.) vorher raus, um Platz zu sparen!
- Testet das Demo unbedingt rechtzeitig auf dem Abgaberechner. Ihr könnt davon ausgehen dass der PC mit einer Geforce 460 GTX bestückt, und Windows 7 installiert ist.
- Solltet ihr besondere Libs benötigen die eine besondere Installation voraussetzen, setzt euch bitte mit den Tutoren im Forum in Verbindung. Ihr könnt davon ausgehen dass eine .NET 2.0-Laufzeitumgebung und ein nVidia PhysX-Treiber installiert sind.
- Die Dokumentation sollte eine kurze Beschreibung des/der Effekte beinhalten. (Also was für ein Effekt, mit welcher Methode wurde er implementiert, und, wie oben angesprochen, welche Quellen wurden benutzt).
1. Abgabe:
Die 1. Abgabe enthält sowohl einen Vorschlag für das Demo als auch schon einen ausführbaren Prototyp, der vor allem eine funktionsfähige Rendering Engine enthalten sollte.Der Sinn des Prototypen ist, bei allen die gleichen Startvoraussetzungen für die Effekte herzustellen. Der Prototyp sollte folgendes enthalten:
- Rendering mittels OpenGL 3.2 core profile (support im Forum) oder DirectX 10 (kein bis kaum support im Forum), unter Windows 7 x64 lauffähig (Windows 7 gibt es für euch gratis hier)
- (zumindest einfache) Beleuchtung im Pixelshader
- Texturen
- Kamerafahrt bzw. Steuerung
- eine einfache Szene, die erahnen läßt, wie ihr die beschriebenen Effekte einsetzen wollt.
Im Vorschlag (pdf-file) solltet ihr dann beschreiben, welche Effekte ihr implementieren wollt und wie sie in den Prototypen eingebaut werden sollen (also an welchen Stellen). Die Effekte müssen genau(!) spezifiziert werden, also mit Quellenangabe (z.B.: Shadow Mapping wie in der VU beschrieben, Levels of Detail wie im Paper von (Autor, link) beschrieben, Bloom-Effekt wie in Tutorial (link) beschrieben, ...).
Für die Endabgabe sollten nur mehr die tatsächlichen Effekte sowie eine verfeinerte Szene fehlen. Wer zu diesem Zeitpunkt schon weiter ist, kann natürlich die Effekte schon im Prototypen zeigen, um dazu schon Feedback zu bekommen.
2. Abgabe:
Die 2. Abgabe soll die endgültige Demo beeinhalten. Hier sollen die gewählten Effekte implementiert und schön in Szene gesetzt werden.Zusätzlich dazu sollte im Abgabearchiv ein Screenshot aus eurem Demo im png - Format in der Auflösung 640x480 und ein Video in mindestens 640x480 Auflösung in xvid - Komprimierung für die Hall of Fame enthalten sein.

