Thomas Jung 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 Ssteme bilden die erste Stufe der Grafikpipeline Verständnis ist Voraussetzung für alle weiteren Vorlesungen und Übungen Punktmenge mit jeweils 3 Koordinaten Zusammenfassung zu Polgonen Betrachter Bildschirm Welt Objekte 1
Plazieren Objekte im Raum bezüglich eines Referenzkoordinatensstems Transformieren Objektkoordinaten in einheitliche Weltkoordinaten Bilden Objekte auf den Bildschirm ab Ermöglichen Objektbewegungen Transformationen im 3D-Raum Rotation Translation Scherung Stauchung Skalierung Projektionen auf 2D-Fläche Zur Vereinheitlichung aller Transformationen Matrix-Vektor-Multiplikation w = 0 bedeutet Richtung Z. B. Beleuchtungsrichtung x = = z = w = 0 verboten! 2
Rotation um x-achse Rotation um -Achse Translation Skalierung Rotation um z-achse Scherung Drehsinn gemäß Rechter- /Linker-Hand-Regel Beispiel Zusammenfassen von Transformationen in einer Matrix ( x / ) 2 2 Interpretation von Matrizen Invertieren von Transformationsmatrizen Repräsentation von Orientierungen Transformierte Punktliste Transformationsmatrix Original- Punktliste Kombination mehrerer Transformationen in einer homogenen Transformationsmatrix Multiplikationen sind assoziativ Alle Punkte eines Objekts innerhalb eines Koordinatensstems Ein Koordinatensstems bezüglich eines anderen Sstems Richtungsvektoren aber nicht kommutativ! Von A z T x Nach B Rx 0 R R z 0 0 4x4-Matrix T 1 3
A ist Inverse zu B Invertierung der Einzeltransformationen Umkehrung der Reihenfolge Nicht jede Transformation ist invertierbar Invertierung durch Determinanten- oder Gauß- Verfahren Spezielle Methoden für 3D-Transformationen (T n * * T 2 * T 1 ) = T 1 * T 2 * * T n Orientierung eines Objekts ist äquivalent zu Rotation aus Ruhelage 3 Rotationsfreiheiten ( Dimensionen ) Repräsentationen Rotationsmatrizen Eulerwinkel (3 folgende Rotationen) Quaternionen glrotatef Befehl VL Computeranimation Objektoberfläche durch Punkte beschreiben Mehrere Koordinatenssteme sind nötig Homogene Transformationen zur Vereinheitlichung Transformation von Punkten innerhalb eines Sstems oder von Sstemen 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 Keine perspektivischen Effekte Erhalt der x- und -Koordinate z wird auf die Bildebene abgebildet Größenvergleich am Bildschirm (CAD) Orthogonale Projektion Perspektivische Projektion 4
Berücksichtigung des Abstands zwischen Objekt und Betrachter Kameramodell Betrachter im Ursprung schaut in Richtung der z-achse Bildschirm bei (0 0 d) 0 d z Strahlensatz: x = x*d/z = *d/z 0 Sichtbarer Bereich zwischen Frontplane und Backplane Objekte werden an den sechs Flächen des Sichtvolumens abgeschnitten (Klipping) Abbildung der Projektionsebene auf den Bildschirm Perspektivisches Sichtvolumen Bildspeicher lineare Adressierung Fenstersstem x,-koordinaten nach unten Viewport Koordinaten im Fenster 0 1 2 1024 1025 2048 x/-offset Fenster Viewport 5020 Transformationen im Vertexshader (GLSL) Matrixoperationen mit glm-bibliothek im OpenGL- Programm 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 (Pramidenstumpf) begrenzt OpenGL-Transformationsmodell 5