chapitre ii transformations de corps rigides. chapitre ii - transformations de corps rigides2...

of 36 /36
Chapitre II Chapitre II Transformations de corps rigides

Author: helaine-collignon

Post on 04-Apr-2015

106 views

Category:

Documents


1 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • Chapitre II Transformations de corps rigides
  • Page 2
  • Chapitre II - Transformations de corps rigides2 Transformations dobjets Les objets sont transforms pour rpondre plusieurs besoins : Transformations de visualisation Transformations ponctuelles Permet lutilisateur de travailler dans le systme de coordonnes de son choix plutt quen coordonnes du dispositif daffichage. Effectue donc le passage du systme de coordonnes de lutilisateur celui de lcran de sorte quune partie de lunivers utilisateur soit affiche sur une partie de lcran. Les objets sont transforms dun espace de dfinition vers un espace du monde pour construire une scne. Les objets complexes sont construits partir de sous-objets plus simples, parfois avec plusieurs niveaux de dcomposition. Les sous-objets sont dfinis par rapport leur propre repre. Ils sont ensuite instancis dans le repre de lobjet ncessitant des transformations. Les objets sont transforms en fonction du temps pour produire une animation.
  • Page 3
  • Transformations de corps rigides OBJECTIFS Dcrire les diffrents modes de reprsentation des transformations et dtailler leurs points forts et leurs points faibles. Construire une transformation affine par composition de transformations. Mesurer limpact des oprateurs de transformation en modlisation et en animation. PLAN DU CHAPITRE Introduction Transformations de base et leurs reprsentations matricielles Composition de transformations Transformations usuelles Changement de systmes de coordonnes Reprsentation angle fixe, par angle dEuler, par angle et axe, ou par quaternions de corps rigides
  • Page 4
  • Chapitre II - Transformations de corps rigides4 INTRODUCTION Considrons les transformations gomtriques de base dans l'espace 3 dimensions: la translation, la rotation et le changement d'chelle. Elles permettront non seulement : de positionner un objet dans l'espace 3D, de l'orienter dans une direction et de fixer la dimension de l'objet mais, aussi, de dfinir le repre de chaque objet d'une scne ou le repre des diffrentes composantes d'un objet articul. La plupart des packages graphiques possdent des outils permettant d'appliquer ces transformations aux objets d'une scne. En infographie, elles sont reprsentes de manire compacte et uniforme sous forme matricielle. Plusieurs transformations appliques aux objets 3D peuvent tre reprsentes simplement comme une suite de transformations de base.
  • Page 5
  • Chapitre II - Transformations de corps rigides5 INTRODUCTION En animation, il est fait lhypothse que la transformation finale applique un objet est le rsultat de rotations et de translations uniquement. En dautres termes, les transformations considres sont de type corps rigide . De plus, nous devons trouver une manire dinterpoler les transformations reprsentes en fonction du temps pour produire un mouvement. Plus prcisment, tant donn un objet sous la forme de deux tats transforms, lordinateur sert interpoler des tats intermdiaires pour produire un mouvement anim dimages cls. tat initial tat intermdiaire tat transform
  • Page 6
  • Chapitre II - Transformations de corps rigides6 TRANSFORMATIONS DE BASE ET LEURS REPRSENTATIONS MATRICIELLES Mathmatiquement, la transformation d'un objet gomtrique consiste appliquer cette transformation l'ensemble des points appartenant l'objet. Heureusement, il n'est pas ncessaire habituellement d'appliquer cette transformation l'ensemble des points de cardinalit infinie qui constituent l'objet. Un nombre fini de points caractrisent compltement l'objet. Un segment de droite de longueur non nulle possde un nombre infini de points; par contre, nous pouvons appliquer une transformation de base uniquement aux deux extrmits du segment de droite en question pour obtenir le segment transform. Exemple
  • Page 7
  • Chapitre II - Transformations de corps rigides7 TRANSLATION Soient V = (v x, v y, v z ), t = (t x, t y, t z ), une premire transformation est la translation selon un vecteur t :T t : V V + t. TRANSLATION DUNE COURBE SELON UN VECTEUR t.
  • Page 8
  • Chapitre II - Transformations de corps rigides8 CHANGEMENT DCHELLE Une deuxime transformation de base est la transformation d'chelle d'un vecteur V selon un vecteur e = (e x, e y, e z ): E e : V (e x v x, e y v y, e z v z ). CHANGEMENT DCHELLE EFFECTU SUR UNE COURBE
  • Page 9
  • Chapitre II - Transformations de corps rigides9 ROTATION Transformation de rotation d'un angle autour de l'axe des z. R Z : V (v x cos - v y sin, v x sin + v y cos, v z ). Transformation de rotation d'un angle autour de l'axe des x. R X : V (v x, v y cos - v z sin, v y sin + v z cos ). Transformation de rotation d'un angle autour de l'axe des y. R Y : V (v x cos + v z sin, v y, v z cos - v x sin ).
  • Page 10
  • Chapitre II - Transformations de corps rigides10 REPRSENTATION SOUS FORME MATRICIELLE DES TRANSFORMATIONS DE BASE V' = diag(e x, e y, e z ) V V' = cos -sin 0V sin cos 0 00 1 V' = 1 0 0V 0 cos sin 0 sin cos V' = cos sin V 01 -sin cos changement dchelle rotation
  • Page 11
  • Chapitre II - Transformations de corps rigides11 COORDONNES HOMOGNES Malheureusement, la translation ne peut pas tre reprsente sous cette forme. En utilisant les coordonnes homognes, toutes les transformations de base peuvent tre reprsentes de la mme faon. En utilisant des coordonnes homognes, on doit ajouter une quatrime coordonne w chaque point. Ainsi, un point est reprsent par le quadruplet (x, y, z, w). Deux quadruplets peuvent reprsenter le mme point si l'un est un multiple de l'autre, en autant que ce point n'est pas l'origine. Par ex., (x, y, z, w) et (x/, y/, z/, w/ ) reprsentent le mme point et si = w 0, (x/w, y/w, z/w) dsignent les coordonnes cartsiennes du point homogne. Ces quadruplets de points reprsentent des points dans l'espace 4 dimensions. Toutefois, notre but est de reprsenter des points 3D. Pour ce faire, nous allons normaliser ces points homognes 4D; ils auront la forme suivante: (x, y, z, 1).
  • Page 12
  • Chapitre II - Transformations de corps rigides12 Matrices de transformation Translation : T t (V') = 100t x V 010t y 1 001t z 0001 Changement dchelle : E e (V') = e x 000V 0e y 001 00e z 0 0001
  • Page 13
  • Chapitre II - Transformations de corps rigides13 Matrices de transformation Rotation : R Z (V') = cos -sin 00V sin cos 001 0010 0001 R X (V') = 1000V 0 cos sin 01 0 sin cos 0 0001 R Y (V') = cos sin 0V 01001 -sin cos 0 0001
  • Page 14
  • Chapitre II - Transformations de corps rigides14 Matrice de transformation quelconque Soit une matrice de transformation quelconque M exprime comme suit: M (V') = m 11 m 12 m 13 t x V m 21 m 22 m 23 t y 1 m 31 m 32 m 33 t z 0001 considrons la sous-matrice 3 x 3 suprieure gauche de M o chaque ligne est vue comme un vecteur. Ces vecteurs peuvent avoir les proprits suivantes: i)chaque vecteur est unitaire; ii)chaque vecteur est perpendiculaire chacun des 2 autres; iii)le dterminant de la sous-matrice est gale 1. En satisfaisant ces proprits, une transformation applique un objet prserve les angles et les longueurs.
  • Page 15
  • Chapitre II - Transformations de corps rigides15 Matrice de transformation quelconque Une suite plus ou moins longue de translations et/ou de rotations satisfait ces conditions. Ces transformations sont de type corps rigides . Un carr aprs avoir subi une rotation autour d'un axe quelconque et une translation dans l'espace 3D demeure un carr o la longueur d'une arte n'a pas chang. Si nous considrons maintenant une suite quelconque de transformations de rotation, translation et/ou de changement d'chelle, cette suite de transformations ou composition de transformations de base est dite transformation affine. Elle est reprsente partir de la matrice M o la sous-matrice 3x3 suprieure gauche dsigne les effets combins des transformations de rotation et de changement d'chelle tandis que le vecteur (t x, t y, t z ) dsigne les effets combins des transformations de translation. Exemple :
  • Page 16
  • Chapitre II - Transformations de corps rigides16 Inverse des transformations affines Les transformations affines sont inversibles: T -1 t = T -t E -1 e = E(1/e x, 1/e y, 1/e z ) R -1 X = R X R -1 Y R Y - R -1 Z = R Z -
  • Page 17
  • Chapitre II - Transformations de corps rigides17 Composition de transformations Elle consiste dfinir une transformation affine i.e., une suite de transformations de base appliquer un objet pour produire le rsultat dsir. Sachant que la droite D est reprsente- par un point P et - un vecteur directeur unitaire, la transformation R D est dcompose comme suit: i) faire concider la droite D avec l'axe des Z; ii)rotation d'un angle autour de l'axe des Z; iii)se ramener l'emplacement original de la droite. EXEMPLE : Transformation R D de rotation d'un angle autour d'une droite quelconque D.
  • Page 18
  • Chapitre II - Transformations de corps rigides18 Transformation R D Transformation R D Faire concider la droite D avec l'axe des Z cos = z / ||(0, y, z )|| sin = y / ||(0, y, z )|| o (0, y, z ) = Proj YZ. Cette transformation affine est obtenue ainsi: - une translation de -P: T -P, - une rotation d'un angle autour de l'axe des X: R X (0, y, z ) - une rotation d'un angle autour de l'axe des Y: R Y cos = ||(0, y, z )|| sin = - x. ( x, 0, ||(0, y, z )||)
  • Page 19
  • Chapitre II - Transformations de corps rigides19 Transformation R D Transformation R D Nous avons alors : R D = T P R X - R Y - R Z R Y R X T -P
  • Page 20
  • Chapitre II - Transformations de corps rigides20 Transformations usuelles Symtrie par rapport un des plans XY, YZ ou XZ. S XY = E (1, 1, -1, 1) S YZ = E (-1, 1, 1, 1) S XZ = E (1, -1, 1, 1).
  • Page 21
  • Chapitre II - Transformations de corps rigides21 Symtrie par rapport au plan d'quation N*P = k, o N est la normale unitaire, Q est un point du plan Pour calculer S, nous devons procder par les tapes suivantes: - translation de -Q afin de faire passer le plan par l'origine; - Faire concider le plan avec le plan XY c'est--dire, la direction N avec l'axe des Z; - symtrie par rapport au plan XY; - ramener le plan son emplacement d'origine; ceci nous donne l'expression suivante pour S : S = T Q R X - R Y - S XY R Y R X T -Q. o et sont dtermins comme prcdemment.
  • Page 22
  • Chapitre II - Transformations de corps rigides22 Symtrie par rapport un point Q La symtrie d'un point P par rapport un point Q, note P*, est calcule comme suit: P* = Q + (-1) (P - Q) = 2Q - P. P* peut tre exprime comme une transformation affine: P* = T 2Q E (-1, -1, -1, 1) P.
  • Page 23
  • Chapitre II - Transformations de corps rigides23 Passage de la fentre un viewport Dans la plupart des systmes graphiques, l'utilisateur peut spcifier les coordonnes des points d'un objet dans un systme de coordonnes quelconque que lui-mme dfinit. Il est souvent dsign sous le vocablesystme de coordonnes de l'usager ousystme de coordonnes du monde. Lorsque cet objet doit tre affich sur un cran ou imprim sur une unit de sortie, un changement de systmes de coordonnes doit tre effectu. Nous devons passer du systme de l'usager celui de l'cran ou de l'unit de sortie. Nous pouvons demander l'usager de dfinir : - une rgion rectangulaire 2D en coordonnes du monde appele fentre et - une rgion rectangulaire 2D en coordonnes cran appele viewport. Le passage du systme de coordonnes de l'usager celui de l'cran consiste faire passer chaque objet de la scne de la fentre au viewport.
  • Page 24
  • Chapitre II - Transformations de corps rigides24 Passage de la fentre un viewport Matrice de transformation Soit une fentre rectangulaire 2D dontle coin infrieur gauche est (x min, y min ) et le coin suprieur droit est (x max, y max ), un viewport rectangulaire 2D dontle coin infrieur gauche est (u min, v min ) et le coin suprieur droit est (u max, v max ), la matrice de transformation s'exprime comme suit: T fentre viewport = T(u min, v min,0) E( u/ x, v/ y, 1) T(-x min, -y min,0) o u = u max - u min, v = v max - v min, x = x max - x min et y = y max - y min.
  • Page 25
  • 25 Passage de la fentre un viewport TRANSFORMATIONSTRANSFORMATIONS
  • Page 26
  • Chapitre II - Transformations de corps rigides26 Changement de systmes de coordonnes Jusqu' maintenant, nous nous sommes intresss aux transformations appliquer l'ensemble des points faisant partie d'un objet. Cela sous-entendait que l'objet tait dfini dans un mme systme de coordonnes avant et aprs la transformation. Une autre faon quivalente de considrer ce problme est de voir une transformation sur un objet comme tant un changement de son repre ou systme de coordonnes. Cette approche est intressante en modlisation. Elle permet d'associer un repre chaque objet et de modifier le repre au lieu de transformer l'objet en lui-mme. Nous pouvons aussi dfinir les diffrentes parties d'un mme objet selon des repres diffrents; par consquent, cela permet de transformer une composante spcifique dun objet sans altrer les autres parties de l'objet.
  • Page 27
  • Chapitre II - Transformations de corps rigides27 Rptition dobjets Nous pouvons vouloir aussi utiliser plusieurs fois dans une scne un mme objet ou sous-objet. Deux approches de la rptition sont possibles : La copie conduit la duplication de toute la structure de donnes reprsentant ce sous-objet ou objet. Si le sous-objet ou objet doit tre modifi, il faudra alors modifier l'une aprs l'autre chacune des copies. Une faon plus conomique de reprsenter l'lment consiste procder par instanciation i.e., ne dupliquer que la matrice de transformation gnralise correspondante, permettant d'avoir des clones de tailles diffrentes, orients et positionns sparment. La description de l'objet ou du sous-objet reste unique; elle est simplement accde via des pointeurs.
  • Page 28
  • Chapitre II - Transformations de corps rigides28 Changement de systmes de coordonnes Matrice de transformation Soit M i j une transformation permettant de passerdu systme de coordonnes j au systme de coordonnes i, soit P (i) la reprsentation d'un point dans le systme de coordonnes i, soit P (j) la reprsentation d'un point dans le systme de coordonnes j, soit P (k) la reprsentation d'un point dans le systme de coordonnes k, P (i) = M i j P (j) et P (j) = M j k P (k) M i k = M i j M j k. La transformation T applique aux points appartenant un objet correspond l'inverse de cette mme transformation lorsque nous voulons plutt modifier le repre de l'objet. P (j) = M i j T P (j) M i j = T -1
  • Page 29
  • Chapitre II - Transformations de corps rigides29 Changement de systmes de coordonnes Matrice de transformation Considrons maintenant Q (j) la transformation appliquer un point dans le systme de coordonnes j; nous voulons dterminer la transformation Q (i) dans le systme de coordonnes i appliquer P (i) aboutissant au mme rsultat que celui d'appliquer la transformation Q (j) P (j). Nous obtenons: Q (i) P (i) = M i j Q (j) P (j) Q (i) M i j P (j) = M i j Q (j) P (j) Q (i) M i j = M i j Q (j) Q (i) = M i j Q (j) M -1 i j.
  • Page 30
  • 30 Comment interpoler les transformations reprsentes en fonction du temps pour produire le mouvement dun corps rigide ? Mthode A Matrice de transformation 4 x 4 La sous-matrice 3 x 3 suprieure gauche reprsente une rotation appliquer lobjet. Les 3 premiers lments de la 4 ime colonne reprsentent la translation. Cela est vrai peu importe lordre dans lequel les transformations ont t fournies par lutilisateur: Ex. :rotation autour de x, translation, rotation autour de x, rotation autour de y, translation, rotation autour de z. La matrice rsultante produite par la multiplication de toutes les transformations de base dans lordre spcifi produira une matrice indiquant la position finale de lobjet selon une matrice de rotation 3 x 3 suivie dune translation. Bref, la rotation peut tre interprte indpendamment de la translation.
  • Page 31
  • 31 Interpolation de matrices de rotation Linterpolation de translations est une opration simple. Linterpolation de rotations est moins vidente. En fait, linterpolation linaire de 2 matrices 3 x 3 orthonormales ne va pas produire des matrices 3 x 3 intermdiaires orthonormales. Cela ne donnera pas lieu des rotations de corps rigides. Dautres modes de reprsentations doivent tre envisages. Exemple : Rotation de 90 autour de laxe des y vers une rotation de 90 autour de laxe des y. 0 0 10 0 00 0 -1 0 1 00 1 00 1 0 -1 0 00 0 01 0 0 Transformation intermdiaire absurde
  • Page 32
  • Reprsentation dune rotation angle fixe (compacte, intuitive et facile manipuler) Cette reprsentation sapplique aux angles utiliss pour tourner autour daxes fixes. Cela implique un ordre fixe des 3 rotations par ex., x y z. La reprsentation dune rotation est donne par un triplet ( x, y, z ) dsignant - une rotation dun angle x autour de laxe des x suivie de - une rotation dun angle y autour de laxe des y suivie de - une rotation dun angle z autour de laxe des z. Problme rencontr : 2 des axes de rotation peuvent se superposer lune lautre Exemple : Soit un objet ayant subi une rotation dfinie par (0, 90, 0), apportons une lgre modification cette rotation : (, 90, ), > 0. On obtient que ces 2 rotations concident : R Z R Y R X R Z R Y R X Laxe des x saligne avec laxe des z. Il y a perte dun degr de libert.
  • Page 33
  • Chapitre II - Transformations de corps rigides33 Interpolation entre positions cls avec la reprsentation dune rotation angle fixe partir de lorientation (0, 90, 0), lobjet ne peut tre pivot autour de laxe des x par une simple modification de celle-ci. En fait, la reprsentation qui produirait une telle orientation est : (90, 90 +, 90), > 0. Pas trs intuitif Le problme prcdent rend difficile linterpolation entre positions cls dans certains cas. Exemple : Soient les orientations cls (0, 90, 0) et (90, 45, 90), cette dernire est une rotation de 45 autour de laxe des x partir de la premire orientation. Interpolation linaire : (45, 67.5, 45) vs orientation souhaite : (90, 22.5, 90)
  • Page 34
  • Chapitre II - Transformations de corps rigides34 Reprsentation dune rotation par angle dEuler Dans ce mode de reprsentation, les axes de rotation correspondent au repre de lobjet. Le systme angles dEuler est quivalent au systme angle fixe dans lordre inverse : Sachant que la transformation T applique aux points appartenant un objet correspond l'inverse de cette mme transformation lorsque nous voulons plutt modifier le repre de l'objet, T = R z R y R x T -1 = R - x R - y R - z La reprsentation angle dEuler prsente les mmes avantages et inconvnients que la reprsentation angle fixe.
  • Page 35
  • Chapitre II - Transformations de corps rigides35 Reprsentation dune rotation par angle axe Une orientation peut tre drive dune autre par une seule rotation autour dun axe. Une orientation est reprsente par un quadruplet compos dun angle et dun vecteur. Une interpolation entre 2 reprsentations cls ( 1, u 1 ) et ( 2, u 2 ) peut tre ralise en interpolant les axes de rotation et les angles sparment : Soientv = u 1 x u 2 = arc cos (u 1.u 2 / (|| u 1 || || u 2 ||)), langle entre u 1 et u 2, une interpolation dindice k entre 0 et 1 est :(1 k) 1 + k 2 R v (k )u 1 Cette reprsentation est difficile utiliser avec une srie de rotations. Rotation autour de laxe v
  • Page 36
  • Chapitre II - Transformations de corps rigides36 Reprsentation dune orientation par quaternion Voir ltude complte sur les quaternions.