Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL
Geometrietransformationen bilden die Basis für die Computergrafik sind Bestandteil aller grafischen Systeme bilden die erste Stufe der Grafikpipeline
Verständnis ist Voraussetzung für alle weiteren Vorlesungen und Übungen
Punktmenge mit jeweils 3 Koordinaten Zusammenfassung zu Polygonen
Betrachter Bildschirm Welt Objekte
1
19.09.2014
Plazieren Objekte im Raum bezüglich eines Referenzkoordinatensystems
Transformieren Objektkoordinaten in einheitliche Weltkoordinaten
Bilden Objekte auf den Bildschirm ab Ermöglichen Objektbewegungen
Projektionen auf 2D-Fläche
Zur Vereinheitlichung aller Transformationen Matrix-Vektor-Multiplikation w = 0 bedeutet Richtung Z. B. Beleuchtungsrichtung x = y = z = w = 0 verboten!
2
19.09.2014
Rotation um x-Achse
Rotation um y-Achse
Rotation um z-Achse
Beispiel
Transformierte Punktliste
Translation
Skalierung
Scherung
Drehsinn gemäß Rechter/Linker-Hand-Regel
( x2 / y2 )
Transformationsmatrix
Zusammenfassen von Transformationen in einer Matrix
Interpretation von Matrizen
Invertieren von Transformationsmatrizen
Repräsentation von Orientierungen
OriginalPunktliste
Kombination mehrerer Transformationen in einer homogenen Transformationsmatrix
Multiplikationen sind assoziativ
Alle Punkte eines Objekts innerhalb eines Koordinatensystems Ein Koordinatensystems bezüglich eines anderen Systems Richtungsvektoren
… aber nicht kommutativ !
y z
Von A
T x
Nach B
Rx 0
Ry 0
Rz 0
T 1
4x4-Matrix
3
19.09.2014
A ist Inverse zu B
Nicht jede Transformation ist invertierbar Invertierung durch Determinanten- oder GaußVerfahren Spezielle Methoden für 3D-Transformationen
Orientierung eines Objekts ist äquivalent zu Rotation aus Ruhelage
Invertierung der Einzeltransformationen Umkehrung der Reihenfolge
Objektoberfläche durch Punkte beschreiben Mehrere Koordinatensysteme sind nötig Homogene Transformationen zur Vereinheitlichung Transformation von Punkten innerhalb eines Systems oder von Systemen ineinander Matrixmultiplikation ist assoziativ aber nicht kommutativ Transformationen im 3D-Raum besitzen Inverse Invertierung von Transformationsketten kehrt die Reihenfolge der Einzeltransformationen um
Bilden 3D-Raum auf Bildebene ab
Orthogonale Projektion
Keine perspektivischen Effekte Erhalt der x- und y-Koordinate z wird auf die Bildebene abgebildet Größenvergleich am Bildschirm (CAD)
Perspektivische Projektion
4
19.09.2014
Berücksichtigung des Abstands zwischen Objekt und Betrachter Kameramodell
0
z
d
Betrachter im Ursprung schaut in Richtung der z-Achse Bildschirm bei (0 0 d)
y’
x’ = x*d/z y’ = y*d/z
Bildspeicher
Perspektivisches Sichtvolumen
1025
... ... ... ...
lineare Adressierung
… 1024 2048
Transformationen im Vertexshader (GLSL) Matrixoperationen mit glm-Bibliothek im OpenGLProgramm
5020
Fenstersystem
y
012
Strahlensatz:
0
Sichtbarer Bereich zwischen Frontplane und Backplane Objekte werden an den sechs Flächen des Sichtvolumens abgeschnitten (Klipping) Abbildung der Projektionsebene auf den Bildschirm
x,y-Koordinaten y nach unten
Viewport
x/y-offset
Fenster
Viewport
Koordinaten im Fenster Bildquelle: http://www.opengl-tutorial.org
Projektionen bilden den Raum auf eine Ebene ab Sie sind deshalb nicht invertierbar Orthogonale Projektionen für CAD Perspektivische Verzerrung z. B für Walkthroughs Der dargestellte Bereich wird durch das Sichtvolumen (Pyramidenstumpf) begrenzt OpenGL-Transformationsmodell