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:
#2 3D Hardwarebeschleunigung mit OpenGL (Stefan R├Âttger)

Zus├Ątzlich 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

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: