La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre II Transformations de corps rigides. Chapitre II - Transformations de corps rigides2 Transformations dobjets Les objets sont transformés pour.

Présentations similaires


Présentation au sujet: "Chapitre II Transformations de corps rigides. Chapitre II - Transformations de corps rigides2 Transformations dobjets Les objets sont transformés pour."— Transcription de la présentation:

1 Chapitre II Transformations de corps rigides

2 Chapitre II - Transformations de corps rigides2 Transformations dobjets Les objets sont transformés pour répondre à plusieurs besoins : Transformations de visualisation Transformations ponctuelles Permet à lutilisateur de travailler dans le système de coordonnées de son choix plutôt quen coordonnées du dispositif daffichage. Effectue donc le passage du système de coordonnées de lutilisateur à celui de lécran de sorte quune partie de lunivers utilisateur soit affichée sur une partie de lécran. Les objets sont transformés dun espace de définition vers un espace du monde pour construire une scène. Les objets complexes sont construits à partir de sous-objets plus simples, parfois avec plusieurs niveaux de décomposition. Les sous-objets sont définis par rapport à leur propre repère. Ils sont ensuite instanciés dans le repère de lobjet nécessitant des transformations. Les objets sont transformés en fonction du temps pour produire une animation.

3 Transformations de corps rigides OBJECTIFS Décrire les différents modes de représentation des transformations et détailler leurs points forts et leurs points faibles. Construire une transformation affine par composition de transformations. Mesurer limpact des opérateurs de transformation en modélisation et en animation. PLAN DU CHAPITRE Introduction Transformations de base et leurs représentations matricielles Composition de transformations Transformations usuelles Changement de systèmes de coordonnées Représentation à angle fixe, par angle dEuler, par angle et axe, ou par quaternions de corps rigides

4 Chapitre II - Transformations de corps rigides4 INTRODUCTION Considérons les transformations géométriques 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 définir le repère de chaque objet d'une scène ou le repère des différentes composantes d'un objet articulé. La plupart des packages graphiques possèdent des outils permettant d'appliquer ces transformations aux objets d'une scène. En infographie, elles sont représentées de manière compacte et uniforme sous forme matricielle. Plusieurs transformations appliquées aux objets 3D peuvent être représentées simplement comme une suite de transformations de base.

5 Chapitre II - Transformations de corps rigides5 INTRODUCTION En animation, il est fait lhypothèse que la transformation finale appliquée à un objet est le résultat de rotations et de translations uniquement. En dautres termes, les transformations considérées sont de type « corps rigide ». De plus, nous devons trouver une manière dinterpoler les transformations représentées en fonction du temps pour produire un mouvement. Plus précisément, étant donné un objet sous la forme de deux états transformés, lordinateur sert à interpoler des états intermédiaires pour produire un mouvement animé dimages clés. état initial état intermédiaire état transformé

6 Chapitre II - Transformations de corps rigides6 TRANSFORMATIONS DE BASE ET LEURS REPRÉSENTATIONS MATRICIELLES Mathématiquement, la transformation d'un objet géométrique consiste à appliquer cette transformation à l'ensemble des points appartenant à l'objet. Heureusement, il n'est pas nécessaire habituellement d'appliquer cette transformation à l'ensemble des points de cardinalité infinie qui constituent l'objet. Un nombre fini de points caractérisent complètement l'objet. Un segment de droite de longueur non nulle possède un nombre infini de points; par contre, nous pouvons appliquer une transformation de base uniquement aux deux extrémités du segment de droite en question pour obtenir le segment transformé. Exemple

7 Chapitre II - Transformations de corps rigides7 TRANSLATION Soient V = (v x, v y, v z ), t = (t x, t y, t z ), une première transformation est la translation selon un vecteur t :T t : V V + t. TRANSLATION DUNE COURBE SELON UN VECTEUR t.

8 Chapitre II - Transformations de corps rigides8 CHANGEMENT DÉCHELLE Une deuxième 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 DÉCHELLE EFFECTUÉ SUR UNE COURBE

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 ).

10 Chapitre II - Transformations de corps rigides10 REPRÉSENTATION SOUS FORME MATRICIELLE DES TRANSFORMATIONS DE BASE V' = diag(e x, e y, e z ) V V' = cos -sin 0V sin cos V' = 1 0 0V 0 cos sin 0 sin cos V' = cos sin V 01 -sin cos changement déchelle rotation

11 Chapitre II - Transformations de corps rigides11 COORDONNÉES HOMOGÈNES Malheureusement, la translation ne peut pas être représentée sous cette forme. En utilisant les coordonnées homogènes, toutes les transformations de base peuvent être représentées de la même façon. En utilisant des coordonnées homogènes, on doit ajouter une quatrième coordonnée w à chaque point. Ainsi, un point est représenté par le quadruplet (x, y, z, w). Deux quadruplets peuvent représenter le même 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/ ) représentent le même point et si = w 0, (x/w, y/w, z/w) désignent les coordonnées cartésiennes du point homogène. Ces quadruplets de points représentent des points dans l'espace à 4 dimensions. Toutefois, notre but est de représenter des points 3D. Pour ce faire, nous allons normaliser ces points homogènes 4D; ils auront la forme suivante: (x, y, z, 1).

12 Chapitre II - Transformations de corps rigides12 Matrices de transformation Translation : T t (V') = 100t x V 010t y 1 001t z 0001 Changement déchelle : E e (V') = e x 000V 0e y e z

13 Chapitre II - Transformations de corps rigides13 Matrices de transformation Rotation : R Z (V') = cos -sin 00V sin cos R X (V') = 1000V 0 cos sin 01 0 sin cos R Y (V') = cos sin 0V sin cos

14 Chapitre II - Transformations de corps rigides14 Matrice de transformation quelconque Soit une matrice de transformation quelconque M exprimée 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 considérons la sous-matrice 3 x 3 supérieure gauche de M où chaque ligne est vue comme un vecteur. Ces vecteurs peuvent avoir les propriétés suivantes: i)chaque vecteur est unitaire; ii)chaque vecteur est perpendiculaire à chacun des 2 autres; iii)le déterminant de la sous-matrice est égale à 1. En satisfaisant à ces propriétés, une transformation appliquée à un objet préserve les angles et les longueurs.

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é après avoir subi une rotation autour d'un axe quelconque et une translation dans l'espace 3D demeure un carré où la longueur d'une arête n'a pas changé. Si nous considérons 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 représentée à partir de la matrice M où la sous-matrice 3x3 supérieure gauche désigne les effets combinés des transformations de rotation et de changement d'échelle tandis que le vecteur (t x, t y, t z ) désigne les effets combinés des transformations de translation. Exemple :

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 -

17 Chapitre II - Transformations de corps rigides17 Composition de transformations Elle consiste à définir une transformation affine i.e., une suite de transformations de base à appliquer à un objet pour produire le résultat désiré. Sachant que la droite D est représentée- par un point P et - un vecteur directeur unitaire, la transformation R D est décomposée comme suit: i) faire coïncider 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.

18 Chapitre II - Transformations de corps rigides18 Transformation R D Transformation R D Faire coïncider 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 )||)

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

20 Chapitre II - Transformations de corps rigides20 Transformations usuelles Symétrie 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).

21 Chapitre II - Transformations de corps rigides21 Symétrie 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 procéder par les étapes suivantes: - translation de -Q afin de faire passer le plan par l'origine; - Faire coïncider le plan avec le plan XY c'est-à-dire, la direction N avec l'axe des Z; - symétrie 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 déterminés comme précédemment.

22 Chapitre II - Transformations de corps rigides22 Symétrie par rapport à un point Q La symétrie d'un point P par rapport à un point Q, notée P*, est calculée comme suit: P* = Q + (-1) (P - Q) = 2Q - P. P* peut être exprimée comme une transformation affine: P* = T 2Q E (-1, -1, -1, 1) P.

23 Chapitre II - Transformations de corps rigides23 Passage de la fenêtre à un «viewport» Dans la plupart des systèmes graphiques, l'utilisateur peut spécifier les coordonnées des points d'un objet dans un système de coordonnées quelconque que lui-même définit. Il est souvent désigné sous le vocablesystème de coordonnées de l'usager ousystème de coordonnées du monde. Lorsque cet objet doit être affiché sur un écran ou imprimé sur une unité de sortie, un changement de systèmes de coordonnées doit être effectué. Nous devons passer du système de l'usager à celui de l'écran ou de l'unité de sortie. Nous pouvons demander à l'usager de définir : - une région rectangulaire 2D en coordonnées du monde appelée fenêtre et - une région rectangulaire 2D en coordonnées écran appelée viewport. Le passage du système de coordonnées de l'usager à celui de l'écran consiste à faire passer chaque objet de la scène de la fenêtre au viewport.

24 Chapitre II - Transformations de corps rigides24 Passage de la fenêtre à un «viewport» Matrice de transformation Soit une fenêtre rectangulaire 2D dontle coin inférieur gauche est (x min, y min ) et le coin supérieur droit est (x max, y max ), un viewport rectangulaire 2D dontle coin inférieur gauche est (u min, v min ) et le coin supérieur droit est (u max, v max ), la matrice de transformation s'exprime comme suit: T fenêtre 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.

25 25 Passage de la fenêtre à un «viewport» TRANSFORMATIONSTRANSFORMATIONS

26 Chapitre II - Transformations de corps rigides26 Changement de systèmes de coordonnées Jusqu'à maintenant, nous nous sommes intéressés aux transformations à appliquer à l'ensemble des points faisant partie d'un objet. Cela sous-entendait que l'objet était défini dans un même système de coordonnées avant et après la transformation. Une autre façon équivalente de considérer ce problème est de voir une transformation sur un objet comme étant un changement de son repère ou système de coordonnées. Cette approche est intéressante en modélisation. Elle permet d'associer un repère à chaque objet et de modifier le repère au lieu de transformer l'objet en lui-même. Nous pouvons aussi définir les différentes parties d'un même objet selon des repères différents; par conséquent, cela permet de transformer une composante spécifique dun objet sans altérer les autres parties de l'objet.

27 Chapitre II - Transformations de corps rigides27 Répétition dobjets Nous pouvons vouloir aussi utiliser plusieurs fois dans une scène un même objet ou sous-objet. Deux approches de la répétition sont possibles : La copie conduit à la duplication de toute la structure de données représentant ce sous-objet ou objet. Si le sous-objet ou objet doit être modifié, il faudra alors modifier l'une après l'autre chacune des copies. Une façon plus économique de représenter l'élément consiste à procéder par instanciation i.e., ne dupliquer que la matrice de transformation généralisée correspondante, permettant d'avoir des clones de tailles différentes, orientés et positionnés séparément. La description de l'objet ou du sous-objet reste unique; elle est simplement accédée via des pointeurs.

28 Chapitre II - Transformations de corps rigides28 Changement de systèmes de coordonnées Matrice de transformation Soit M i j une transformation permettant de passerdu système de coordonnées j au système de coordonnées i, soit P (i) la représentation d'un point dans le système de coordonnées i, soit P (j) la représentation d'un point dans le système de coordonnées j, soit P (k) la représentation d'un point dans le système de coordonnées 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 appliquée aux points appartenant à un objet correspond à l'inverse de cette même transformation lorsque nous voulons plutôt modifier le repère de l'objet. P (j) = M i j T P (j) M i j = T -1

29 Chapitre II - Transformations de corps rigides29 Changement de systèmes de coordonnées Matrice de transformation Considérons maintenant Q (j) la transformation à appliquer à un point dans le système de coordonnées j; nous voulons déterminer la transformation Q (i) dans le système de coordonnées i à appliquer à P (i) aboutissant au même résultat 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.

30 30 Comment interpoler les transformations représentées en fonction du temps pour produire le mouvement dun corps rigide ? Méthode A Matrice de transformation 4 x 4 La sous-matrice 3 x 3 supérieure gauche représente une rotation à appliquer à lobjet. Les 3 premiers éléments de la 4 ième colonne représentent 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 résultante produite par la multiplication de toutes les transformations de base dans lordre spécifié 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 interprétée indépendamment de la translation.

31 31 Interpolation de matrices de rotation Linterpolation de translations est une opération simple. Linterpolation de rotations est moins évidente. En fait, linterpolation linéaire de 2 matrices 3 x 3 orthonormales ne va pas produire des matrices 3 x 3 intermédiaires orthonormales. Cela ne donnera pas lieu à des rotations de corps rigides. Dautres modes de représentations doivent être envisagées. Exemple : Rotation de 90° autour de laxe des y vers une rotation de –90° autour de laxe des y Transformation intermédiaire absurde

32 Représentation dune rotation à angle fixe (compacte, intuitive et facile à manipuler) Cette représentation sapplique aux angles utilisés pour tourner autour daxes fixes. Cela implique un ordre fixe des 3 rotations par ex., x – y – z. La représentation dune rotation est donnée par un triplet ( x, y, z ) désignant - 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. Problème rencontré : 2 des axes de rotation peuvent se superposer lune à lautre Exemple : Soit un objet ayant subi une rotation définie par (0, 90°, 0), apportons une légère modification à cette rotation : (, 90°, ), > 0. On obtient que ces 2 rotations coïncident : 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é.

33 Chapitre II - Transformations de corps rigides33 Interpolation entre positions clés avec la représentation 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 représentation qui produirait une telle orientation est : (90°, 90° +, 90°), > 0. Pas très intuitif Le problème précédent rend difficile linterpolation entre positions clés dans certains cas. Exemple : Soient les orientations clés (0, 90°, 0) et (90°, 45°, 90°), cette dernière est une rotation de 45° autour de laxe des x à partir de la première orientation. Interpolation linéaire : (45°, 67.5°, 45°) vs orientation souhaitée : (90°, 22.5°, 90°)

34 Chapitre II - Transformations de corps rigides34 Représentation dune rotation par angle dEuler Dans ce mode de représentation, les axes de rotation correspondent au repère de lobjet. Le système à angles dEuler est équivalent au système à angle fixe dans lordre inverse : Sachant que la transformation T appliquée aux points appartenant à un objet correspond à l'inverse de cette même transformation lorsque nous voulons plutôt modifier le repère de l'objet, T = R z R y R x T -1 = R - x R - y R - z La représentation à angle dEuler présente les mêmes avantages et inconvénients que la représentation à angle fixe.

35 Chapitre II - Transformations de corps rigides35 Représentation dune rotation par angle axe Une orientation peut être dérivée dune autre par une seule rotation autour dun axe. Une orientation est représentée par un quadruplet composé dun angle et dun vecteur. Une interpolation entre 2 représentations clés ( 1, u 1 ) et ( 2, u 2 ) peut être réalisée en interpolant les axes de rotation et les angles séparément : 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 représentation est difficile à utiliser avec une série de rotations. Rotation autour de laxe v

36 Chapitre II - Transformations de corps rigides36 Représentation dune orientation par quaternion Voir létude complète sur les quaternions.


Télécharger ppt "Chapitre II Transformations de corps rigides. Chapitre II - Transformations de corps rigides2 Transformations dobjets Les objets sont transformés pour."

Présentations similaires


Annonces Google