Lectures

3D Computergrafik


Include this page


© 2010–2013Stefan Röttger
© 2013-Matthias Hopf
© 2023-Stefan Röttger, Adam Kalisz, Matthias Hopf


Die Vorlesung ist aufgeteilt in drei Hauptteile:

Zusätzliche Infos zur Prüfung.




Teil #1

Einführung in die 3D Computergrafik mit Blender




Was ist “3D Computergrafik”?

Grundlagen

3D Grundlagen

Grafische APIs

Lernziel: Überblick über die verschiedensten Aspekte und Grundlagen der Computergrafik. Praktisches Kennenlernen verschiedenster Aspekte anhand des vorlesungsbegleitenden Blender-Tutorial.
Lernzielkontrolle:

Welche Gebiete der Computergrafik gibt es im Allgemeinen?
In welchem konkreten Gebiet ist die 3D Computergrafik verortet?
Wie werden Bilder dargestellt?
Wie funktioniert eine Digital-Kamera?
Mit welchem Kameramodell wird in der 3D Computergrafik gearbeitet?
Welche zwei antagonistische Ziele gibt es prinzipiell bei der Darstellung von 3D Szenen?

Frameworks und Tools

Die Computergrafik-Pipeline

Lernziel: Überblick über die einzelnen Stufen den Grafik-Pipeline
Lernzielkontrolle:

Nennen Sie die Stufen und beschreiben Sie deren Aufgabe!
Welche Daten werden in den jeweiligen Stufen verarbeitet?
Was sind Vertices und Attribute?
Was geschieht mit diesen als erstes?
Wozu wird die Rasterisierung benötigt?
Was wird hierbei interpoliert?
Was ist eine sog. Fragment?
Was ist die sog. MVP?

3D Modellierung

Hierarchische Modellierung

Lernziel: Verständnis wie eine 3D Szene mit Hilfe von geometrischen Modellen aufgebaut wird und wie diese Modelle in der Pipeline transformiert werden.
Lernzielkontrolle:

Aus welchen Primitiven sind die Modelle aufgebaut und wie werden Sie transformiert?
Erklären Sie den Unterschied zwischen Direct und Retained Mode!
Erklären Sie den Unterschied zwischen globalen und lokalen Koordinaten!
Erklären Sie das Prinzip der hierarchischen Modellierung und deren Nutzen!
Was ist also überhaupt der Zweck lokaler Koordinatensysteme? Nennen Sie mindestens drei Vorteile!

Beleuchtungsverfahren

Advanced Blender Tricks

  • to be announced

Lernziel: Überblick über die grundlegenden Verfahren zur globalen Beleuchtungsberechnung
Lernzielkontrolle:

Zeichnen Sie beispielhaft die Licht- bzw. Augpfadem wie sie beim Raytracing und Monte-Carlo Path-Tracing vorkommen und erklären Sie damit, wie die Berechnung eines Einzelbildes bei diesen Verfahren prinzipiell zustande kommt!




Teil #2

3D Hardwarebeschleunigung mit OpenGL




Die Computergrafik-Hardware

Die Computergrafik-Hardware-Pipeline

Lernziel: Überblick über die einzelnen Hardwarekomponenten, aus denen die Grafikhardware besteht und wie diese mit den Komponenten des Rechners kommunizieren.
Lernzielkontrolle:

Wo steckt in Ihrem Rechner die Grafikkarte und wo ist der Bus, über den sie kommuniziert?
Mit welcher Geschwindigkeit bzw. Taktfrequenz geschieht dies?
Wieviele Daten können pro Takt übertragen bzw. verarbeitet werden?

Kartesische Vektorräume

3D Transformationen

Lernziel: Verständnis der Abbildung einer 3D Szene durch eine zusammengestzte Matrixmultiplikation.
Lernzielkontrolle:

Aus welchen Teilen setzt sich eine Modellierungstransformation zusammen?
Was ist der Vorteil der Darstellung der Transformation als Matrizenmultiplikation? Nennen Sie mindestens drei Vorteile!
Nennen Sie die beteiligten Einzeltransformationen und Koordinatensysteme!
Was ist eine Starrkörpertransformation und wie wird diese als Matrix dargestellt?
Ist die Reihenfolge vertauschbar?
Wieso verwenden wir 4×4 und nicht 3×3 Matrizen?
Was ist also die sog. Modellierungstransformation -bzw. Matrix?

Zusammengesetzte 3D Transformationen

OpenGL Grundlagen

Grundlagen der Perspektivischen Darstellung

Lernziel: Verständnis der Kameratransformation und der perspektivischen Transformation.
Lernzielkontrolle:

Wie werden diese Transformationen definiert?
Wie wird die Position und Ausrichtung der Kamera spezifiziert?
Wie kann ich Position und Ausrichtung der Kamera in der Viewing-Matrix ablesen?
Wie kann man die Viewingtransformation durch eine Modellierungstransformation ausdrücken?
Wie wird die perspektivische Transformation erzielt?
Welche Parameter sind bei der Definition des View Frustums beteiligt und was für einen Zweck haben sie jeweils?
Wozu benötigen wir homogene Koordinaten? Nennen Sie mindestens drei Gründe!
Wozu dient der Matrizeneintrag −1?
Was ist also die perspektivische Transformation bzw. Matrix?
Was ist also die sog. Viewingtransformation bzw. Viewing-Matrix?

MVP in Theorie und mit OpenGL

OpenGL Primitive

Hierarchische Modellierung mit OpenGL

Lernziel: Verständnis dafür , was die Schlagworte MVP und VBO bedeuten und wie sie im Kontext der hierarchischen Modellierung verwendet werden.
Lernzielkontrolle:

Was sind die beteiligten Einzeltransformationen und Koordinatensysteme bei der MVP? Was ist ein VBO?
In welche Reihenfolge werden die Einzeltransformationen angewandt?
In welcher Reihenfolge werden deren Teil-Matrizen multipliziert?
Wie wird die MVP also konkret berechnet?
Machen Sie ein konkretes Rechenbeispiel zur MVP!
Wofür steht die Abkürzung VBO?
Was für ein Vorteil haben VBOs?
Machen Sie ein Beispiel, wie sie einen VBO im Framework verwenden

Rasterisierung mit OpenGL

Texturen mit OpenGL

Texturanwendungen

Lernziel: Verständnis des Prinzips der Texturierung und deren Anwendungen
Lernzielkontrolle:

Wie erfolgt die Zuordnung der Textur zu den geometrischen Primitiven?
Wie liegen die Bilddaten im Hauptspeicher vor und wie gelangen Sie auf die GPU?
Was ist der Vorteil von Texture-Objekten und Mip-Maps?
In welcher Stufe der Graphik-Pipeline erfolgt die Texturierung?
Nennen Sie mindestens drei Textur-Anwendungen!




Teil #3

3D Computergrafikeffekte mit GLSL Shadern




OpenGL Shader

GLSL Basics

Lernziel: Wir lernen mit GLSL Shader zu programmieren und vertiefen dabei insbesondere die folgenden Termini: uniform, attribute, varying, shader inputs/outputs
Lernzielkontrolle:

tbd

GLSL Continued


Lokale Beleuchtung

Lokale Beleuchtungsarten

Lernziel: Wir lernen mit Hilfe von GLSL das Blinn-Phong Beleuchtungsmodell zu realisieren.
Lernzielkontrolle:

tbd

Texturen als Framebuffer

Raytracing mit Grafik-Hardware

Lernziel: Wir lernen eine Auswahl an weiterführenden graphischen Algorithmen und Postprocessing-Effekten kennen.
Lernzielkontrolle:

tbd

Advanced Rendering Techniques

Ausblick: Jenseits von OpenGL


fin

Options: