CARL      VONOSSIETZKY            Transformationen            Johannes Diemke            ¨            Ubung im Modul OpenG...
MotivationTransformationen   Sind Grundlage vieler Verfahren der Computergrafik         Model- und View-Transformation     ...
GrundlagenMatrix   Rechteckige Anordnung von Elementen   Schl¨sselkonzept der linearen Algebra       u   In der Computergr...
GrundlagenTransponieren einer Matrix   Die transponierte Matrix AT einer r×c-Matrix A ergibt sich durch   Vertauschen der ...
GrundlagenMultiplikation mit einem Skalar   Eine m×n-Matrix M kann mit einem Skalar k multipliziert werden   Ergebnis ist ...
GrundlagenMatrixmultiplikation   Eine r×n-Matrix A kann mit einer n×c-Matrix B multipliziert werden   Das Ergebnis ist ein...
GrundlagenMatrixmultiplikation (Forts.)    Die Elemente cij der r×c-Matrix C = AB ergeben sich zu    Johannes Diemke      ...
GrundlagenRechenregeln f¨r Matrizen              u   Nicht kommutativ         AB = BA   Assoziativ         (AB)C = A(BC ) ...
GrundlagenDie Einheitsmatrix   Spezielle Diagonalmatrix   Hat nur Einsen auf der Diagonalen   Neutrales Element bzgl. Mult...
GrundlagenVektoren als Matrizen   Vektoren der Dimension n k¨nnen als Matrizen aufgefasst werden                          ...
GrundlagenVektor-Matrix-Multiplikation   M¨glich, da Vektoren als Matrizen aufgefasst werden k¨nnen    o                  ...
Lineare TransformationenGeometrische Interpretation   Eine quadratische Matrix kann jede lineare Transformation   beschrei...
Lineare TransformationenWie transformiert eine Matrix einen Vektor?   Ein Vektor kann als Linearkombination von Basisvekto...
Lineare TransformationenWie transformiert eine Matrix einen Vektor? (Forts.)   v hat im neuen System immer noch dieselben ...
Lineare TransformationenWie transformiert eine Matrix einen Vektor? (Forts.)   Die Komponente des Vektors v im [e1 , e2 , ...
Lineare TransformationenZusammenfassung   Die Spalten einer Matrix k¨nnen als Basisvektoren aufgefasst werden             ...
Lineare TransformationenVisualisieren einer Transformationsmatrix   Jede Spalte der Matrix stellt einen Basisvektor nach d...
Lineare TransformationenVisualisieren einer Transformationsmatrix (Forts.)    Darstellung der Basisvektoren einer Transfor...
Lineare TransformationenSkalierung   Die Skalierung ist eine lineare Abbildung   Vegr¨ßert oder verkleinert        o      ...
Lineare TransformationenRotation   Die Rotation ist eine lineare Abbildung   Rotiert Vektoren                            ...
Lineare TransformationenRotation (Forts.)   Rotation um die x-Achse                                                     ...
Affine TransformationenAffine Transformationen   Sind ein wichtiges Hilfsmittel in der Computergrafik         Erm¨glichen Orien...
Affine TransformationenHomogene Koordinaten   Eine affine Abbildung x = Ax + p kann in eine Matrixmultiplikation   uberf¨hrt w...
Affine TransformationenHomogene Koordinaten (Forts.)   M kann uber eine Matrixdekomposition zerlegt werden          ¨       ...
Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Ni...
Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/˜angel/ Gerald Farin und Dianne Hansford Practi...
Nächste SlideShare
Wird geladen in …5
×

2010-JOGL-05-Transformationen

590 Aufrufe

Veröffentlicht am

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
590
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

2010-JOGL-05-Transformationen

  1. 1. CARL VONOSSIETZKY Transformationen Johannes Diemke ¨ Ubung im Modul OpenGL mit Java Wintersemester 2010/2011
  2. 2. MotivationTransformationen Sind Grundlage vieler Verfahren der Computergrafik Model- und View-Transformation Projektionstransformation Einsatz in vielen weiteren Verfahren Bump Mapping Shadow Mapping Billboarding ... Mathematische Grundlage sind lineare und affine Abbildungen mittels Matrizen Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 2/26
  3. 3. GrundlagenMatrix Rechteckige Anordnung von Elementen Schl¨sselkonzept der linearen Algebra u In der Computergrafik von elementarer Bedeutung: Lineare und affine Abbildungen Beschreiben Transformationen zwischen KoordinatensystemenNotation Aneinanderreihung der Elemente in Zeilen und Spalten Durch fettgedruckte Großbuchstaben bezeichnet Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 3/26
  4. 4. GrundlagenTransponieren einer Matrix Die transponierte Matrix AT einer r×c-Matrix A ergibt sich durch Vertauschen der Zeilen mit den Spalten Das Ergebnis ist eine c×r-Matrix Transponieren als Involution (M T )T = M Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 4/26
  5. 5. GrundlagenMultiplikation mit einem Skalar Eine m×n-Matrix M kann mit einem Skalar k multipliziert werden Ergebnis ist wieder eine m×n-Matrix kM Jedes Element wird mit k multipliziert Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 5/26
  6. 6. GrundlagenMatrixmultiplikation Eine r×n-Matrix A kann mit einer n×c-Matrix B multipliziert werden Das Ergebnis ist eine r×c-Matrix Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 6/26
  7. 7. GrundlagenMatrixmultiplikation (Forts.) Die Elemente cij der r×c-Matrix C = AB ergeben sich zu Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 7/26
  8. 8. GrundlagenRechenregeln f¨r Matrizen u Nicht kommutativ AB = BA Assoziativ (AB)C = A(BC ) Inverse eines Produktes (AB)−1 = B −1 A−1 Transponieren eines Produkts (AB)T = B T AT Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 8/26
  9. 9. GrundlagenDie Einheitsmatrix Spezielle Diagonalmatrix Hat nur Einsen auf der Diagonalen Neutrales Element bzgl. Multiplikation IA = AI = A Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 9/26
  10. 10. GrundlagenVektoren als Matrizen Vektoren der Dimension n k¨nnen als Matrizen aufgefasst werden o 1×n-Matrix (Zeilenvektor) n×1-Matrix (Spaltenvektor) Aus geometrischer Sicht sind beide Notationen identisch Unterscheidung bei Matrixmultiplikation aber wichtig Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/26
  11. 11. GrundlagenVektor-Matrix-Multiplikation M¨glich, da Vektoren als Matrizen aufgefasst werden k¨nnen o o Es gelten die gleichen Regeln Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 11/26
  12. 12. Lineare TransformationenGeometrische Interpretation Eine quadratische Matrix kann jede lineare Transformation beschreiben Gerade und parallele Geraden bleiben erhalten Der Urspung bewegt sich nicht L¨ngen, Winkel, Fl¨chen und Volumen k¨nnen sich aber ¨ndern a a o a Lineare Transformationen Rotation Skalierung Reflexion Scherung Orthographische Projektion Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 12/26
  13. 13. Lineare TransformationenWie transformiert eine Matrix einen Vektor? Ein Vektor kann als Linearkombination von Basisvektoren aufgefasst werden Bezeichnen wir die Basisvektoren mit e1 , e2 und e3 erhalten wir v = xe1 + y e2 + ze3 Der Vektor v kann durch einen Basiswechsel auf v abgebildet werden v = xa1 + y a2 + za3 Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 13/26
  14. 14. Lineare TransformationenWie transformiert eine Matrix einen Vektor? (Forts.) v hat im neuen System immer noch dieselben Komponenten wie v Bzgl. des [e1 , e2 , e3 ]-Systems haben sie sich aber ge¨ndert a Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 14/26
  15. 15. Lineare TransformationenWie transformiert eine Matrix einen Vektor? (Forts.) Die Komponente des Vektors v im [e1 , e2 , e3 ]-Systems ergeben sich zu v = xa1 + y a2 + za3 Das l¨ßt sich aber pr¨gnanter durch eine Matrixmultiplikation a a ausdr¨cken u    a1x a2x a3x x v =  a1y a2y a3y   y  = Av a1z a2z a3z z Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 15/26
  16. 16. Lineare TransformationenZusammenfassung Die Spalten einer Matrix k¨nnen als Basisvektoren aufgefasst werden o Multiplikation mit einer Matrix M F¨hrt zu Basiswechsel u Transformation von einem Koordinatensystem in ein anderes Gibt an wie v nach Basiswechsel im alten Koordinatensystem aussieht Konkatenation von Transformationen durch Matrixmultiplikation v = (A4 (A3 (A2 (A1 v )))) = (A4 A3 A2 A1 )v Lineare Transformationen erm¨glichen keine Translation o v = A0 = 0 Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 16/26
  17. 17. Lineare TransformationenVisualisieren einer Transformationsmatrix Jede Spalte der Matrix stellt einen Basisvektor nach der Transformation dar a1 = Ae1 a2 = Ae2 a3 = Ae3 a1 , a2 und a3 stellen die Achsen nach der Transformation dar Aus dieser Einsicht folgt Konstruktion einer Matrix f¨r gegebene Transformation ist einfach u Wie wirkt sich die Transformation auf die Basisvektoren aus? Transformierte Basisvektoren bilden dann die Matrix Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 17/26
  18. 18. Lineare TransformationenVisualisieren einer Transformationsmatrix (Forts.) Darstellung der Basisvektoren einer Transformation Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 18/26
  19. 19. Lineare TransformationenSkalierung Die Skalierung ist eine lineare Abbildung Vegr¨ßert oder verkleinert o Vektoren   kx 0 0 S(kx , ky , kz ) =  0 ky 0  0 0 kz Inverse S −1 (kx , ky , kz ) = S(1/kx , 1/ky , 1/kz ) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 19/26
  20. 20. Lineare TransformationenRotation Die Rotation ist eine lineare Abbildung Rotiert Vektoren   cos θ − sin θ 0 Rz (θ) =  sin θ cos θ 0  0 0 1 Rotations-Matrizen sind orthogonal AAT = I A−1 = AT Inverse −1 T Rz (θ) = Rz (−θ) = Rz (θ) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 20/26
  21. 21. Lineare TransformationenRotation (Forts.) Rotation um die x-Achse   1 0 0 Rx (θ) =  0 cos θ − sin θ  0 sin θ cos θ Rotation umd die y-Achse   cos θ 0 sin θ Ry (θ) =  0 1 0  − sin θ 0 cos θ Inverse −1 T Rx (θ) = Rx (−θ) = Rx (θ) −1 T Ry (θ) = Ry (−θ) = Ry (θ) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 21/26
  22. 22. Affine TransformationenAffine Transformationen Sind ein wichtiges Hilfsmittel in der Computergrafik Erm¨glichen Orientierung und Bewegung o Lineare Abbildung plus Translation x = Ax + pProblem Transformationen nicht mehr uber reine Matrixmultiplikation ¨ m¨glich o Konkatenation auch nicht L¨sung: Homogene Koordinaten o Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 22/26
  23. 23. Affine TransformationenHomogene Koordinaten Eine affine Abbildung x = Ax + p kann in eine Matrixmultiplikation uberf¨hrt werden ¨ u x = Mx Dazu ist M folgendermaßen zu w¨hlen a   a1,1 a1,2 a1,3 p1  a a a p  M =  2,1 2,2 2,3 2   a3,1 a3,2 a3,3 p3  0 0 0 1 x ist dann in homogene Koordinaten x zu uberf¨hren ¨ u (x1 , x2 , x3 ) → (x1 , x2 , x3 , 1) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 23/26
  24. 24. Affine TransformationenHomogene Koordinaten (Forts.) M kann uber eine Matrixdekomposition zerlegt werden ¨ Linearer Anteil R Affiner Anteil T    1 0 0 p1 a1,1 a1,2 a1,3 0  0 1 0 p2   a2,1 a2,2 a2,3 0  M = TR =   0   0 1 p3   a3,1 a3,2 a3,3 0  0 0 0 1 0 0 0 1Vorteile homogener Koordinaten Einheitliche Behandlung aller Transformationen Konkatenation von Transformationen durch Matrixmultiplikation Komplexe Transformationen durch Gesamttransformationsmatrix Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 24/26
  25. 25. Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Nicholas Haemel OpenGL SuperBibel http://www.starstonesoftware.com/OpenGL/ Randi J. Rost OpenGL Shading Language http://www.3dshaders.com/ Tomas Akenine-M¨ller, Eric Haines und Naty Hoffman o Real-Time Rendering http://www.realtimerendering.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 25/26
  26. 26. Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/˜angel/ Gerald Farin und Dianne Hansford Practical Linear Algebra http://www.farinhansford.com/books/pla/ Fletcher Dunn und Ian Parberry 3D Math Primer for Graphics and Game Development www.gamemath.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 26/26

×