lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 2 Motivation Die raphik-pipeline (stark vereinfacht) Transformationen werden benötigt, um Objekte, Beleuchtung und Kamera zu positionieren und animieren; alle Berechnungen im selben Koordinatensystem durchzuführen; Objekte zu projizieren OpenL verwendet 4x4-Matrizen zur Spezifikation von Transormationen Viewing = welche Transformationen muß man verwenden, um die 3D-Welt auf den 2D-Bildschirm zu projizieren Anwendung eometrie-stufe Raster-Stufe Im folgenden diese Tasks Alle Berechnungen, die 1x pro Polygon oder pro Vertex (Ecke) durchgeführt werden Z.B.: Modell- und Viewing- Transformation Projektion Beleuchtung lipping Arbeitet im 3D Kennen wir (teilweise) schon Z.B.: Scan onversion Arbeitet im 2D. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 3. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 4 1
Koordinatensysteme in der Pipeline Lineare und affine Abbildung Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) lipping Object space - Lokal für jedes Objekte World space - alle Objekte Eye Space / amera Space Lineare Transformationen wie Rotation, Skalierung und Scherung können durch eine 3x3 Matrix dargestellt werden Affine Transformationen (z.b. Translation), können nicht als 3x3 Matrix dargestellt werden Projection (to Screen Space) Scan onversion (Rasterization) Visibility / Display lip Space (ND) [-1,-1,-1] [1,1,1] Screen Space - adressiert entsprechend der Hardware Merke die Konvention "Matrix mal Vektor". Zachmann omputer-raphik 1 - WS 07/08 Transformationen 5. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 6 Homogene Koordinaten im 3D Veranschaulichung im 2D Homogene Darstellung ist nützlich für Transformationen von Punkten und Vektoren Erweitert 3D Punkte und Vektoren zu 4D Punkte und Vektoren Homogener Punkt Homogener Vektor Erweitere Punkt P = (x,y) zu P' = (x,y,1) Assoziiere Linie w. (x,y,1) = (wx, wy, w) mit P' Homogene Koordinaten 1 w P' P'' Affine Ebene w = 1 P x y M.a.W.: ein 3D-Vektor (x, y, w) beschreibt den 2D-Punkt (x/w, y/w) für w 0 den 2D-Vektor (x, y) für w = 0. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 7. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 8 2
Homogenisierung im 3D Punkte und Vektoren Der homogene Punkt Punkt + Vektor = Punkt beschreibt den Punkt an der Stelle Vektor + Vektor = Vektor Punkt Punkt = Vektor. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 9. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 10 Homogene Matrizen in 3D Lineare Abb. (Matrix-Vektor-Multiplikation) Matrix 3x3-Form. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 11. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 12 3
Affine Abbildungen im 3D rundtransformationen im 3D 3x3-Form Translation Rotation Skalierung Scherung (kommt in der Praxis fast nie vor) Verkettung Starrkörpertransformation (rigid body transformation) ewöhnliche Transformation In homogenen Koordinaten lassen sich sogar affine Abbildungen als einfache Matrix-Vektor-Multiplikation darstellen!. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 13. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 14 Translation Rotation Eines Punktes Rotation um x-, y-, z-achse um Winkel φ X-Koord. bleibt unverändert Vorzeichentest: φ=90 y geht nach z, z geht nach -y. Eines Vektors Inverse O φ. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 15. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 16 4
Orthogonalität Skalierung Rotationsmatrix ist orthogonal: Kann zum Vergrößern oder Verkleinern verwendet werden Folgen: s x, s y, s z beschreiben Längenänderung in x-, y-, z-richtung Uniforme (isotrope) Skalierung: s x = s y = s z Nicht-uniforme (anisotrope) Inverse. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 17. Zachmann omputer-raphik 1 - WS 07/08 Transformationen 18 5