Prof. Dr. Aris Christidis 

Fachgebiet Praktische Informatik


 

Computergrafik
für Studierende der Informatik (BSc / MSc)

Dieses Fach befaßt sich inhaltlich mit der Bildsynthese, also mit der Generierung visueller Darstellungen unter Verwendung logisch-mathematischer Methoden. 

Spätestens im Embedded-Bereich müssen InformatikerInnen einsehen: Nicht nur der Strom entsteht jenseits der Steckdose; auch die Computergrafik kommt nicht aus der Maus. Auf die Frage: „Was kann man mit einem Raster darstellen, dessen Zellen beliebige Farben annehmen können (wie bei einer Werbetafel aus farbigen LEDs)?" darf es nur eine Antwort geben: „Alles!" 


Nach dieser Prämisse werden in zwei voneinander weitestgehend unabhängigen Kursen, anhand eines eigens für diese Vorlesung geschaffenen, frei verfügbaren Programmpakets, ca. 30 Jahre Grafik-Entwicklung im Zeitraffer durchgenommen. Dabei übernehmen zunächst ASCII-Zeichen die Rolle der Pixel.

 

Der Grundlagen-Kurs (BSc) wendet sich zuerst der Frage zu, wie man auf einer gekachelten Fläche jene Platten optimal aussucht, die visuell den Eindruck einer geraden Linie vermitteln. Dann widmet man sich der Aufgabe, Linien in der Ebene (Abb.1) und im Raum zu positionieren, zu Drahtmodellen zusammenzufügen (Abb.2) und Datenstrukturen zu wählen, die Verarbeitung und Speicherung von 3D-Objekten für einen Austausch von Modellen auch zwischen unterschiedlichen Implementierungen ermöglichen. Schrittweise wird eine eigene Grafik-Pipeline aufgebaut, die mindestens so mächtig ist, wie jene, die heutzutage noch auf kleinen Displays elektrischer Anlagen (z.B. Kopierer) verwendet werden, und die sogar nicht-quadratische (ASCII-) Pixel ausgleicht. 


Es folgen die Auseinandersetzung mit den Gesetzen der Perspektive und Überlegungen darüber, wie man die abgewandte, nicht sichtbare Seite von Objekten rechnerisch eliminiert (Abb.3), bevor man aufwendige Verdeckungsalgorithmen einsetzt. 


Mit diesem „Proviant im Gepäck" hat man ein anderes Verständnis für die anschließende Anwendung der professionellen Grafik-Bibliothek OpenGL (Abb.4), für die soche Techniken nur einzeilige „Aufrufe" sind – welche freilich zu merkwürdigen Konstruktionen führen können, wenn man nicht weiß, was im Hintergrund gerechnet wird. 


Gesondert werden hier die Aufgabenstellungen, die Lösungen und die ermutigende Notenentwicklung in den bisherigen (schriftlichen) Klausuren behandelt.

 

 

Der Kurs Computergrafik (MSc) beginnt (zur Wahrung seiner Eigenständigkeit) mit einem kritischen Repetitorium der o.a. Inhalte. Man stellt fest, daß auch noch so reife Dreizeiler sich manchmal als innovationsfähig erweisen. Anschließend wird im selben Stil neuen Fragen nachgegangen:


Wie werden Flächen von Grafik-Objekten (Abb.5) mit Farbe gefüllt, und warum setzen professionelle Grafik-Bibliotheken den Einsatz konvexer Flächen voraus? Was würde der Wegfall dieser Einschränkung bedeuten?


Wann nennt man die Helligkeitsschwankungen am virtuellen Modell „Schatten" und wann „Schattierung", und wie werden Lichteffekte logisch unterschieden, rechnerisch nachgebildet und programmtechnisch codiert (Abb.6)? Was ist darin photorealistischer Nachbau und was optische Täuschung? Wie nutzt man das Linienziehen als lineare Interpolation, und wie kann menschliche Intuition in mathematische Verfahren einfließen (Abb.7)?


Wie hilft das Werk von J.B.J.Fourier (1768-1830), das treppenartige Aussehen schräger Linien auf Monitoren zu erklären, und wie funktioniert die Technik der Kantenglättung, deren Name („Antialiasing", Abb.8) aus dem Griechischen über das Lateinische ins Englische gelangte und hierzulande so einheitlich falsch ausgesprochen wird, daß internationale Gesprächspartner nur noch verdutzt fragen können: „Oh – German?"


Diese Themen werden detailliert behandelt und teilweise (bei Interesse auch ganz) eigenständig programmiert. Auch die (in Lehrbüchern kaum erklärte) Technik der Texturierung (Abb.9) wird exakt mathematisch hergeleitet und pixelgenau, geradezu „embedded-tauglich" (Abb.10), erörtert. Zu allen Techniken wird mit nachempfundenem Pioniergeist der Weg vom physikalischen Effekt über das vereinfachte, echtzeitfähige Modell bis hin zum Pixelsetzen erläutert. Zur Implementierung an praxisüblichen Systemen wird zugleich der Umgang mit der Grafikbibliothek OpenGL vertieft und in den betreuten Übungen (notfalls in gemeinsamer Kleinarbeit) beschritten. Auch hier wird die Programmiersprache C eingesetzt, in der auch OpenGL codiert ist. 


Schließlich wird (je nach Zeitbudget) die geschichtliche und matehmatische Entwicklung weicher Kurven behandelt und in der ursrpünglichen Form der Splines programmiert (Abb. 11).


Die bisher stets guten bis sehr guten Noten in der (nunmehr mündlichen) Prüfung und die persönlichen Gespräche mit Absolventen lassen auf eine durchaus erfolgreiche Stoffvermittlung schließen.


Die hier angewandte Didaktik wird seit fast zwei Dekaden zurückgedrängt, zugunsten des Einübens reinen Anwendungsdenkens von Bibliotheken, über die keiner fragt, wer sie später weiterentwickeln soll. Entsprechend wundern sich manche Entwicklungsleiter der Simulatorenindustrie, wieso jüngere Absolventen oft auf Hindernisse stoßen, die ältere Kollegen zu den Grundlagen zählen.


Teilnehmerinnen und Teilnehmer dieser Kurse behalten eine Grafik-Bibliothek, an deren Entwicklung sie mitgewirkt haben, und die sie eigenständig oder als Zusatz zu OpenGL betreiben und jederzeit zu allen Zwecken weiterentwickeln können.


InteressentInnen können gerne auch probeweise an den Lehrveranstaltungen teilnehmen, um herauszufinden, ob sie der Faszination des Faches erliegen.


Abb. 1 (2D-Transformation)


Abb. 2 (3D-Drahtmodell)


Abb. 3 (Backface Culling)


Abb. 4 (OpenGL-Shading)


Abb. 5 (Füll-Algorithmus)


Abb. 6 (Flat Shading)


Abb.7 (Gouraud Shading)


Abb. 8 (OpenGL-Antialiasing)


Abb. 9 (OpenGL-Texturierung)


Abb. 10 (Texturierung)

Abb. 11 (Spline)


 

Letzte Aktualisierung: 05.01.2021

(Startseite in neuem Fenster)