Als weiterführende Lehrveranstaltung zu Entwicklung von Computergrafik belegte ich im Hauptstudium das Fach „Programmierung grafischer Systeme“ (ProGS). Die Vorlesung behandelte die OpenGL Spezifikation welche als Programmierschnittstelle zur Darstellung von 2D und 3D Grafik in Echtzeit verwendet wird. Da OpenGL nicht fest an Betriebssysteme oder Programmiersprachen gebunden ist, findet es auf vielen Systemen seinen Einsatz. Zum Inhalt der Vorlesung zählten neben der konzeptionellen Struktur bzw. den einzelnen Bibliotheken von OpenGL auch die Arbeit mit Transformationen, Kameramodellen, Projektionen, Displaylisten, Texturen, Lichtquellen, diversen Puffern auch die Programmierung von Shadern – der Stoff war noch um einiges umfangreicher, aber ich will hier ja nicht die ganze Lehrveranstaltung abreißen.
[Not a valid template]
Im praktischen Teil arbeiteten wir mit einem speziellem Wrapper, der die Programmierung von OpenGL unter der Programmiersprache Java ermöglichte. Den Anfang machte auch hier zunächst etwas graue Theorie, gefolgt von bunten Sonnen, Erden und Monden die sich umeinander, miteinander oder übereinander drehten und dabei auch gerne mal ihr Eigenleben entwickelten weil man einen #@?% Befehl vergessen hatte. Die Praxis folgte der Theorie aus der Vorlesung und so kamen wir letztendlich irgendwann zu Vertex- und Fragmentshadern, die unsere 3D Szenen noch hübscher anmuten ließen; leider kam dieses Thema zu kurz, da das Semester dem Ende zuging.
Die Prüfung in ProGS konnte auf Basis einer Projektarbeit abgelegt werden, in der das Erlernte programmiertechnisch umgesetzt und erklärt werden musste. Eingereicht wurde so ziemlich alles von Grafikdemos über 3D-Modell-Betrachter bis hin zu einfachen Spielen. Ich entschied mich für eine Grafikdemo, die eine Naturszene darstellen sollte. Eine kleine Wassermühle an einem Naturbach mit ein paar Bäumen und Grünzeugs drumrum. Ich teilte meine Arbeit dabei in drei größere Schritte auf. Zunächst entwarf ich die Szene in meinem Kopf und auf Papier. Anschließend modellierte ich die 3D Modelle mit einer speziellen Software und verpasste ihnen eine Textur. Im dritten und langwierigsten Schritt schrieb ich ein Programm das meine 3D Modelle und Bilder einlaß und letztendlich auf dem Bildschirm darstellte.
Zwei Semester später überarbeitete ich die Szene für einen Grafik Wettbewerb im Fachbereich und erreichte immerhin Platz 2 für die technischen Umsetzung sowie als Publikumsliebling. Ich baute dabei auf ein „hochauflösendes“ Modell der Mühle, welches ich für eine andere Projektarbeit angefertigt hatte. Auf den Bildern sieht man die kleinen aber feinen Unterschiede :) Das Gras welches in der Szene so hübsch im Wind hin und her schaukelt habe ich auch erst zu diesem Zeitpunkt eingebunden. Ebenso sind die Partikeleffekte für das sprühende Wasser hinzugekommen. Die Anforderungen für den Graphic Interactiv Contest (GraphIC) waren wie folgt:
- Es muss möglich sein mittels eines Eingabegerätes oder mehreren Eingabegeräten (Maus, Tastatur, Gamepad, …) die Szene zu bedienen.
- Mittels der verschiedenen Eingabegeräte müssen Interaktionen in der Szene möglich sein.
- Es ist nicht gestattet, vollständig entwickelte Graphic-Engines Dritter zu verwenden. Lediglich einzelne Algorithmen, welche aus verschiedenen Quellen stammen, sind zulässig.
[Not a valid template]