transformations de corps rigidesdupuis/modelisation et... · en animation, il est fait...

36
Chapitre II Chapitre II Transformations de corps rigides

Upload: others

Post on 16-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre IIChapitre II

Transformations de corps rigides

Page 2: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 2

Transformations d’objetsTransformations d’objetsLes objets sont transformés pour répondre à plusieurs besoins :

Transformations de visualisation

Transformations ponctuelles

Permet à l’utilisateur de travailler dans le système de coordonnées de son choixplutôt qu’en coordonnées du dispositif d’affichage.Effectue donc le passage du système de coordonnées de l’utilisateur à celui del’écran de sorte qu’une partie de l’univers utilisateur soit affichée sur une partiede l’écran.

Les objets sont transformés d’un espace de définition vers un espace du mondepour construire une scène.Les objets complexes sont construits à partir de sous-objets plus simples, parfoisavec plusieurs niveaux de décomposition.Les sous-objets sont définis par rapport à leur propre repère. Ils sont ensuiteinstanciés dans le repère de l’objet nécessitant des transformations.Les objets sont transformés en fonction du temps pour produire une animation.

Page 3: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Transformations de corps rigidesTransformations de corps rigides

OBJECTIFSDécrire les différents modes de représentation des transformations etdétailler leurs points forts et leurs points faibles.

Construire une transformation affine par composition de transformations.

Mesurer l’impact des opérateurs de transformation en modélisation et en animation.

PLAN DU CHAPITREIntroductionTransformations de base et leurs représentations matriciellesComposition de transformationsTransformations usuellesChangement de systèmes de coordonnéesReprésentation à angle fixe, par angle d’Euler, par angle et axe, ou parquaternions de corps rigides

Page 4: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 4

INTRODUCTIONINTRODUCTION

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 etde 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 cestransformations aux objets d'une scène. En infographie, elles sont représentées demanière compacte et uniforme sous forme matricielle.Plusieurs transformations appliquées aux objets 3D peuvent être représentéessimplement comme une suite de transformations de base.

Page 5: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 5

INTRODUCTIONINTRODUCTION

En animation, il est fait l’hypothèse que la transformation finale appliquée à un objetest le résultat de rotations et de translations uniquement.

En d’autres termes, les transformations considérées sont de type « corps rigide ».

De plus, nous devons trouver une manière d’interpoler les transformationsrepré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,l’ordinateur sert à interpoler des états intermédiaires pour produire un mouvementanimé d’images clés.

état initialétat intermédiaire état transformé

Page 6: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 6

TRANSFORMATIONS DE BASE ET LEURS TRANSFORMATIONS DE BASE ET LEURS REPRÉSENTATIONS MATRICIELLESREPRÉSENTATIONS MATRICIELLES

Mathématiquement, la transformation d'un objet géométrique consiste à appliquercette 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; parcontre, nous pouvons appliquer une transformation de base uniquement aux deuxextrémités du segment de droite en question pour obtenir le segment transformé.

Exemple

Page 7: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 7

TRANSLATIONTRANSLATION

Soient V = (vx, vy, vz), t = (tx, ty, tz), une première transformation est latranslation selon un vecteur t: Tt : V → V + t.

V

V+ t

t

TRANSLATION D’UNE COURBE SELON UN VECTEUR t.

Page 8: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 8

CHANGEMENT D’ÉCHELLECHANGEMENT D’ÉCHELLE

Une deuxième transformation de base est la transformation d'échelle d'un vecteur V selon un vecteur e = (ex, ey, ez): Ee : V → (ex vx, ey vy, ez vz).

CHANGEMENT D’ÉCHELLE EFFECTUÉ SUR UNE COURBEx

y

z

la même courbe après un changement d'échelle

Page 9: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 9

ROTATIONROTATION

Transformation de rotation d'un angle γ autour de l'axe des z.

RZγ: V → (vx cos γ - vy sin γ, vx sin γ + vy cos γ, vz).

Transformation de rotation d'un angle β autour de l'axe des x.

RXβ: V → (vx, vy cos β - vz sin β, vy sin β + vz cos β).

Transformation de rotation d'un angle α autour de l'axe des y.

RYα: V → (vx cos α + vz sin α, vy, vz cos α - vx sin α).

Page 10: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 10

REPRÉSENTATION SOUS FORME MATRICIELLE DES REPRÉSENTATION SOUS FORME MATRICIELLE DES TRANSFORMATIONS DE BASETRANSFORMATIONS DE BASE

V' = diag(ex, ey, ez ) V

V' = cos γ -sin γ 0 Vsin γ cos γ 00 0 1

V' = 1 0 0 V0 cos β −sin β0 sin β cos β

V' = cos α 0 sin α V0 1 0-sin α 0 cos α

changement d’échelle

rotation

Page 11: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 11

COORDONNÉES HOMOGÈNESCOORDONNÉ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 allonsnormaliser ces points homogènes 4D; ils auront la forme suivante: (x, y, z, 1).

Page 12: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 12

Matrices de transformationMatrices de transformation

Translation :Tt (V') = 1 0 0 tx V

0 1 0 ty 10 0 1 tz0 0 0 1

Changement d’échelle :

Ee (V') = ex 0 0 0 V0 ey 0 0 10 0 ez 00 0 0 1

Page 13: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 13

Matrices de transformationMatrices de transformation

Rotation : RZγ(V') = cos γ -sin γ 0 0 V

sin γ cos γ 0 0 10 0 1 00 0 0 1

RXβ(V') = 1 0 0 0 V

0 cos β −sin β 0 10 sin β cos β 00 0 0 1

RYα(V') = cos α 0 sin α 0 V

0 1 0 0 1-sin α 0 cos α 00 0 0 1

Page 14: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 14

Matrice de transformation Matrice de transformation quelconquequelconque

Soit une matrice de transformation quelconque M exprimée comme suit:

M (V') = m11 m12 m13 tx Vm21 m22 m23 ty 1m31 m32 m33 tz0 0 0 1

considérons la sous-matrice 3 x 3 supérieure gauche de M où chaque ligne est vuecomme 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 lesangles et les longueurs.

Page 15: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 15

Matrice de transformation Matrice de transformation quelconquequelconque

Une suite plus ou moins longue de translations et/ou de rotations satisfait cesconditions. Ces transformations sont de type « corps rigides ».

Un carré après avoir subi une rotation autour d'un axe quelconque et une translationdans 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 oucomposition 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 gauchedésigne les effets combinés des transformations de rotation et de changement d'échelletandis que le vecteur (tx, ty, tz) désigne les effets combinés des transformations detranslation.

Exemple :

Page 16: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 16

Inverse des transformations Inverse des transformations affinesaffines

Les transformations affines sont inversibles:

T-1t = T-t

E-1e = E(1/ex, 1/ey, 1/ez)

R-1Xβ

= RX−β

R-1Yα

= RY-α

R-1Zγ

= RZ-γ.

Page 17: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 17

Composition de transformationsComposition de transformations

Elle consiste à définir une transformation affine i.e., une suite de transformations debase à 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 RDθ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 RDθde rotation d'un angle θ autour d'une droite

quelconque D.

Page 18: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 18

Transformation Transformation RRDDθθ

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) = ProjYZυ.

Cette transformation affine est obtenue ainsi:

- une translation de -P: T-P,- une rotation d'un angle β autour de l'axe des X: RXβ

(0, υy, υz)

Y

Z

X

υ

β

- une rotation d'un angle α autour de l'axe des Y: RYαcos α = ||(0, υy, υz)||sin α = -υx.

Y

Z

X

α1

(υx, 0, ||(0, υy, υz)||)

Page 19: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 19

Transformation Transformation RRDDθθ

Nous avons alors:

RDθ= TP RX-β

RY-αRZθ

RYαRXβ

T-P

Page 20: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 20

Transformations usuellesTransformations usuelles

Symétrie par rapport à un des plans XY, YZ ou XZ.

SXY = E(1, 1, -1, 1)

SYZ = E(-1, 1, 1, 1)

SXZ = E(1, -1, 1, 1).

Page 21: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 21

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, ladirection 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π = TQ RX-β

RY-αSXY RYα

RXβT-Q.

où α et β sont déterminés comme précédemment.

Page 22: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 22

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* = T2Q E(-1, -1, -1, 1) P.

Page 23: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 23

Passage de la fenêtre à un «viewport»

Dans la plupart des systèmes graphiques, l'utilisateur peut spécifier les coordonnéesdes 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 vocable “système de coordonnées de l'usager”ou “système de coordonnées du monde”.

Lorsque cet objet doit être affiché sur un écran ou imprimé sur une unité de sortie, unchangement 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 à fairepasser chaque objet de la scène de la “fenêtre” au “viewport”.

Page 24: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 24

Passage de la fenêtre à un «viewport»Matrice de transformation

Soit une fenêtre rectangulaire 2D dont le coin inférieur gauche est (xmin, ymin) etle coin supérieur droit est (xmax, ymax),

un “viewport” rectangulaire 2D dont le coin inférieur gauche est (umin, vmin) etle coin supérieur droit est (umax, vmax),

la matrice de transformation s'exprime comme suit:

Tfenêtre → viewport = T(umin, vmin,0) E(∆u/∆x, ∆v/∆y, 1) T(-xmin, -ymin,0)

où ∆u = umax - umin, ∆v = vmax - vmin,∆x = xmax - xmin et ∆y = ymax - ymin.

Page 25: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

25

Passage de la fenêtre à un «viewport»

Fenêtre dans le système de coordonnées du monde

Y

X

Y

XTranslation de la fenêtre à l'origine

v

u

Mise à l'échelle de la fenêtre à partir du viewport

v

u

Translation à la position occupée par le viewport

dimension maximale du viewport

TRANSFORMATIONS

Page 26: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 26

Changement de systèmes de Changement de systèmes de coordonnéescoordonné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éesavant et après la transformation.

Une autre façon équivalente de considérer ce problème est de voir une transformationsur 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 desrepères différents; par conséquent, cela permet de transformer une composantespécifique d’un objet sans altérer les autres parties de l'objet.

Page 27: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 27

Répétition d’objetsRépétition d’objets

Nous pouvons vouloir aussi utiliser plusieurs fois dans une scène un même objet ousous-objet.Deux approches de la répétition sont possibles :

La copie conduit à la duplication de toute la structure de donnéesreprésentant ce sous-objet ou objet.

Si le sous-objet ou objet doit être modifié, il faudra alors modifier l'uneaprès l'autre chacune des copies.

Une façon plus économique de représenter l'élément consiste à procéder parinstanciation i.e., ne dupliquer que la matrice de transformation généraliséecorrespondante, 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 simplementaccédée via des pointeurs.

Page 28: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 28

Changement de systèmes de coordonnéesChangement de systèmes de coordonnéesMatrice de transformationMatrice de transformation

Soit Mi ← j une transformation permettant de passer du système de coordonnées jau 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) = Mi ← j P(j) et P(j) = Mj ← k P(k)

⇓Mi ← k = Mi ← j Mj ← 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 lerepère de l'objet.

P(j) = Mi ← j T P(j) Mi ← j = T-1

Page 29: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 29

Changement de systèmes de coordonnéesChangement de systèmes de coordonnéesMatrice de transformationMatrice de transformation

Considérons maintenant Q(j) la transformation à appliquer à un point dans le systèmede coordonnées j; nous voulons déterminer la transformation Q(i) dans le système decoordonnées i à appliquer à P(i) aboutissant au même résultat que celui d'appliquer latransformation Q(j) à P(j).

Nous obtenons:Q(i) P(i) = Mi ← j Q(j) P(j)

⇓Q(i) Mi ← j P(j) = Mi ← j Q(j) P(j)

⇓Q(i) Mi ← j = Mi ← j Q(j)

⇓Q(i) = Mi ← j Q(j) M-1

i ← j .

Page 30: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

30

Comment interpoler les transformationsreprésentées en fonction du temps pour

produire le mouvement d’un 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 à l’objet.Les 3 premiers éléments de la 4ième colonne représentent la translation.

Cela est vrai peu importe l’ordre dans lequel les transformations ont été fournies parl’utilisateur:

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 lestransformations de base dans l’ordre spécifié produira une matrice indiquantla position finale de l’objet selon une matrice de rotation 3 x 3 suivie d’unetranslation.

Bref, la rotation peut être interprétée indépendamment de la translation.

Page 31: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

31

Interpolation de matrices de rotationInterpolation de matrices de rotation

L’interpolation de translations est une opération simple.

L’interpolation de rotations est moins évidente.

En fait, l’interpolation linéaire de 2 matrices 3 x 3 orthonormales ne va pasproduire des matrices 3 x 3 intermédiaires orthonormales.

Cela ne donnera pas lieu à des rotations de corps rigides.

D’autres modes de représentations doivent être envisagées.

Exemple : Rotation de 90° autour de l’axe des yvers une rotation de –90° autour de l’axe des y.

0 0 1 0 0 0 0 0 -10 1 0 0 1 0 0 1 0-1 0 0 0 0 0 1 0 0

Transformationintermédiaire

absurde

Page 32: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Représentation d’une rotation à angle fixeReprésentation d’une rotation à angle fixe(compacte, intuitive et facile à manipuler)(compacte, intuitive et facile à manipuler)

Cette représentation s’applique aux angles utilisés pour tourner autour d’axes fixes.

Cela implique un ordre fixe des 3 rotations par ex., x – y – z.

La représentation d’une rotation est donnée par un triplet (θx, θy, θz) désignant- une rotation d’un angle θx autour de l’axe des x suivie de- une rotation d’un angle θy autour de l’axe des y suivie de- une rotation d’un angle θz autour de l’axe des z.

Problème rencontré : 2 des axes de rotation peuvent se superposer l’une à l’autre

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 :RZ0°

RY90° RX0°

= RZ εRY 90°

RX εL’axe des x s’aligneavec l’axe des z.∴ Il y a perte d’un degré de liberté.

Page 33: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 33

Interpolation entre positions clés avec la Interpolation entre positions clés avec la représentation d’une rotation à angle fixereprésentation d’une rotation à angle fixe

À partir de l’orientation (0, 90°, 0), l’objet ne peut être pivoté autour de l’axe des xpar 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 l’interpolation entre positions clés dans certainscas.

Exemple : Soient les orientations clés (0, 90°, 0) et (90°, 45°, 90°) ,cette dernière est une rotation de 45° autour de l’axe des x à partirde la première orientation.

Interpolation linéaire : (45°, 67.5°, 45°) vs orientation souhaitée : (90°, 22.5°, 90°)

Page 34: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 34

Représentation d’une rotation par angle d’EulerReprésentation d’une rotation par angle d’Euler

Dans ce mode de représentation, les axes de rotation correspondent au repèrede l’objet.

Le système à angles d’Euler est équivalent au système à angle fixe dans l’ordre inverse :

Sachant que la transformation T appliquée aux points appartenant à un objetcorrespond à l'inverse de cette même transformation lorsque nous voulons plutôtmodifier le repère de l'objet,

T = RθzRθy

RθxT-1 = R-θx

R-θyR-θz

La représentation à angle d’Euler présente les mêmes avantages et inconvénientsque la représentation à angle fixe.

Page 35: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 35

Représentation d’une rotation par angle axeReprésentation d’une rotation par angle axe

Une orientation peut être dérivée d’une autre par une seule rotation autour d’un axe.

Une orientation est représentée par un quadruplet composé d’un angle et d’unvecteur.Une interpolation entre 2 représentations clés (θ1, u1) et (θ2, u2) peut être réaliséeen interpolant les axes de rotation et les angles séparément :

Soient v = u1 x u2φ = arc cos (u1.u2 / (|| u1 || || u2 ||)), l’angle entre u1 et u2,

une interpolation d’indice k entre 0 et 1 est : (1 – k) θ1 + k θ2Rv (k φ)u1

Cette représentation est difficile à utiliseravec une série de rotations.

Rotation autour de l’axe v

Page 36: Transformations de corps rigidesdupuis/Modelisation et... · En animation, il est fait l’hypothèse que la transformation finale appliquée à un objet est le résultat de rotations

Chapitre II - Transformations de corps rigides 36

Représentation d’une orientation par quaternionReprésentation d’une orientation par quaternion

Voir l’étude complète sur les quaternions.