1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters,...

43
1 ANIMATION PAR TRAJECTOIRES kenine-Möller, Eric Haines, Real-Time Rendering. A 2002, 835p. rent, Animatique Algorithmes et techniques. Vuibert 30p. on la courbe du mouvement le long d’une courbe ation de rotations représentées par des quaternions trajet impliquant une modification de l’orientatio d’un trajet ation d’un trajet sur une surface 1. 2.

Transcript of 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters,...

Page 1: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

1

ANIMATIONPAR

TRAJECTOIRES

Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A KPeters, 2002, 835p.Rick Parent, Animatique Algorithmes et techniques. Vuibert, Paris,2003, 530p.

° Définition° Choix de la courbe° Contrôle du mouvement le long d’une courbe° Interpolation de rotations représentées par des quaternions° Suivi du trajet impliquant une modification de l’orientation de l’objet° Lissage d’un trajet° Détermination d’un trajet sur une surface

1.

2.

Page 2: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

2

DéfinitionToutes les caractéristiques d’une scène peuvent varier dans le temps :

- un point de référence sur un objet de la scène,- la position de la caméra,- la couleur d’un objet,- la position d’une source lumineuse,- etc.

Pour réaliser de telles animations, nous utilisons des trajectoires i.e.des chemins qui représentent le parcours à suivre par un objet.

Outre les objets, il est également possible de lier une trajectoire à unecaméra ou à une source lumineuse.

Les trajectoires sont définies à l’aide de courbes paramétriques 3D :C(u) (Cx(u), Cy(u), Cz(u)), u [0, 1].

Page 3: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

3

Description du contexte auquel fait face l’animateur

Cette méthode permet de spécifier avec précision le mouvementd’objets. Les attentes de l’animateur sont claires.

Très peu d’incertitude à propos des positions et orientations à produire,l’ordinateur sert uniquement à calculer les valeurs réelles.

Choix de la trajectoireInterpolation ou approximation ou techniques de points de contrôle

Courbe d’interpolation Courbe d’approximation oud’ajustement

Échantillon de points rapprochésde la courbe

Positions effectives par lesquellesla courbe doit passer.

Page 4: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

4

Critères de choix de la trajectoire

Courbe de Bézier

Technique de points de contrôle

Liste de points permettant decontrôler la forme de la courbe

Complexité de la trajectoire

Complexité (degré) Moins rapide est l’évaluation despolynômes.

Meilleur choix : les polynômes cubiques par morceau.

Fournissent un tracé suffisamment régulier tout en procurantsuffisamment de flexibilité pour satisfaire aux contraintes decontinuité.

Un polynôme d’ordre supérieur n’offre pas d’avantages significatifs.

Page 5: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

5

Critères de choix de la trajectoireContinuité de la courbe composée (courbe par morceaux)aux points de jonction entre segments adjacents

La régularité de la courbe obtenue est une considération importante.

Le nombre de dérivées continues de l’équation de la courbe.

Discontinuité positionnelle Continuité d’ordre 0mais pas tangentielle

Continuité d’ordre 0 et 1(en animation, cela est suffisant habituellement)

Page 6: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

6

Critères de choix de la trajectoireContrôle global par opposition à contrôle local

Lorsqu’on trace une courbe, on procède souvent par raffinementssuccessifs.

Contrôle local : la modification d’un seul point de contrôle a un effet sur une portion limitée de la courbe.

Contrôle global : le repositionnement d’un point de contrôle redéfinit, même légèrement, la totalité de la courbe.

Plus avantageux

Note : Quasiment toutes les courbes composées présentent uncontrôle local.

Les courbes de Bézier de degré élevé présentent un contrôleglobal.

Polygone de contrôled’une courbe de degré 10

Page 7: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

7

Comparaison de l’effet local et globaldu déplacement d’un point de contrôle

Contrôle global

Contrôle local

Page 8: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

8

En résumé …Il existe un grand nombre de formulations possibles. La formulationspécifique choisie dépend des critères précédents.

En animation, les choix suivants sont souvent faits :

- la spline de Catmul-Rom- la courbe de Bézier de degré N à partir des points P0, P1, …, PN

- le mélange parabolique.

Page 9: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

9

Contrôle du mouvement le long de la trajectoire C(u), u [0, 1]

1ière étape d’une animation : choisir la forme de la trajectoire.

2ième étape d’une animation : déterminer la vitesse de parcours de latrajectoire C(u) par rapport à u.

Premier objectif : Fournir une méthode permettant de progresserle long de la courbe en incréments égaux.

Notons d’abord que la variation constante du paramètre u ne signifiepas que les positions euclidiennes varieront d’une quantité constantei.e. d’une vitesse constante.

u

C(u)

Page 10: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

10

Comment assurer une vitesse de parcours constante ?

Moyen utilisé: la trajectoire doit être paramétrée par longueur d’arc i.e.selon la distance parcourue sur la courbe.

Les 2 problèmes suivants doivent être résolus :(a) Étant donné les paramètres u1 et u2, trouver la distance à

parcourir sur la courbe entre u1 et u2.(b) Étant donné une longueur d’arc s et une valeur paramétrique u1,

trouver u2 tel que s = distance à parcourir sur la courbe entre u1 et u2.Il faut établir la relation entre u et la longueur d’arc en spécifiant lafonction s = G(u), qui donne la longueur de la courbe de son point dedépart jusqu’au point correspondant à u.

Si G-1 existe, la courbe peut être paramétrée efficacement par longueurd’arc, i.e. C(G -1(s)).

Ensuite, l’animateur doit fixer la distance que l’objet doit parcourir lelong de la courbe à chaque intervalle de temps.

Page 11: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

11

Approche analytique au calcul de la longueur d’arcPour calculer la longueur d’une courbe C(u) entre 2 valeurs u1 et u2,il s’agit d’évaluer l’intégrale suivante :

C(u) . C(u) duu1

u2

s =

Impossible à résoudre analytiquement pour une courbe arbitraire.

On doit opter pour des techniques d’intégration numériques.

Page 12: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

12

Estimation de la longueur d’arc par différentiation vers l’avant

Stratégie la plus simple et la plus facile à concevoir pour faire le lienentre le paramètre u et la longueur d’une portion de la courbe :

- Échantillonner la courbe avec une multitude de valeurs paramétriques.- À chaque valeur paramétrique est associée un point sur la courbe.- La longueur d’arc peut être estimée en calculant la distance linéaire entre points adjacents sur la courbe.- Un tableau T est construit avec des longueurs d’arc indexées par des valeurs paramétriques (ui = i * différence entre 2 valeurs de suite de u,

i = 0, 1, 2, …, 20).T= 0= Distance entre les points C(0) et C(0.05)= T[1] + Distance entre les points C(0.05) et C(0.10)= T[2] + Distance entre les points C(0.10) et C(0.15)

= T[19] + Distance entre les points C(0.95) et C(1.00)

0123

181920

Page 13: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

13

Utilisation du tableau T pour estimer la longueur d’arc entre le début de la courbe et le point C(u) sur la courbe

où u est fixé dans [0, 1]

L’indice i de la composante dans le tableau T dont le paramètre est leplus proche de u est obtenu comme suit :

i = 0.5 + u / différence entre 2 entrées successives de uoù [ x ] désigne la partie entière de x.

Approximation grossière de la longueur d’arc : T[i].

Approximation grossière :

Approximation par interpolation entre les longueurs d’arc correspondantaux entrées de chaque côté de u :

i = u / différence entre 2 entrées successives de u

Approximation T[i] + (T[i+1] – T[i]) * (u - ui) / (ui+1 - ui) par interpolation

Page 14: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

14

Utilisation du tableau T pour estimer la valeur de u, étant donnée la longueur d’arc s

« Étant donné les paramètres u1 et u2, trouver la distance à parcourir surla courbe entre u1 et u2 » revient à :

appliquer la méthode précédente 2 fois etsoustraire les distances respectives obtenues.

Problème inverse :

l’indice i de la composante dans le tableau T dont la longueur d’arcest la plus proche de celle de s est obtenu par recherche binaire.

Approximation grossière du paramètre u associé à s : ui où

Approximation par interpolation du paramètre u associé à s :

ui + (ui+1 – ui) * (s – T(i)) / (T(i+1) – T(i))

où l’indice i est maximal avec T[i] s.

Page 15: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

15

Utilisation du tableau T pour estimer la valeur de u, étant donnée la longueur d’arc s

« Étant donné une longueur d’arc s et une valeur paramétrique u1,trouver u2 tel que s = distance à parcourir sur la courbe entre u1 et u2 »,cela revient à :

- estimer la longueur d’arc associée à u1,- ajouter le résultat à s pour obtenir s’,- utiliser la méthode précédente pour estimer la valeur

paramétrique u correspondant à s’.Avantages : Approche facile à mettre en œuvre, intuitive et

rapide à calculer.

Désavantages : Les résultats sont des approximations.

Méthodes pour réduire les erreurs :- suréchantillonner la courbe :10 000 valeurs paramétriques sur la courbe

avec 1000 entrées dans T. chaque intervalle est subdivisé en 10 sous-intervalles.- utiliser des techniques d’interpolation d’ordre supérieur (non linéaire).

Page 16: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

16

Approche adaptativePour mieux contrôler la précision de nos estimés, on peut utiliser uneapproche qui effectue plus de calculs dans les zones estimées contenirdes erreurs importantes.

Comme auparavant, il faut construire une structure de données Toù la iième entrée est de la forme :(une valeur paramétrique ui, la longueur d’arc de l’origine de la courbeà la position correspondant à ui).

une liste chaînée(le # d’entrées n’est pas connu à priori)

Page 17: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

17

Description de l’algorithme adaptatif

1. Soit - la liste vide T,- la liste vide S des segments de la courbe à traiter,

(chaque entrée renferme les 2 valeurs paramétriques du segment à traiter).

Ajouter l’élément <0, 0> dans la liste T.Ajouter l’élément <0, 1> dans la liste S.

2. Choisir la première entrée de S de la forme (u, u).Calculer um : la valeur médiane entre u et u.Calculer le point sur la courbe C(um).Calculer le point sur la courbe C(u).Calculer le point sur la courbe C(u).

Page 18: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

18

Description de l’algorithme adaptatif (suite)

3. Si | ||C(u) – C(u) || - (||C(um) – C(u) || + ||C(u) – C(um) || ) | seuil

alors ranger dans T l’élément < um, T(u) + ||C(um) – C(u) || >,ranger dans T l’élément < u, T(um) + ||C(u) – C(um) || >.

sinon ranger au début de S les 2 éléments suivants : <u, um> et < um, u >.

Ces valeurs sont déjà dans T.

4. Si la liste S n’est pas vide,retourner à l’étape 2.

FIN

Inconvénient :À un stade précoce de la procédure, 2 moitiés de segment peuventindiquer qu’il est possible d’arrêter la subdivision.

Solution : Forcer la subdivision jusqu’à un certain niveau avantd’appliquer la procédure adaptative.

Page 19: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

19

Description de l’algorithme adaptatif (fin)

au-dessus du seuil au-dessous du seuil

Note : La recherche d’une entrée dans T n’est pas aussi simpleque précédemment.

On peut opter pour une recherche binaire.

Page 20: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

20

Contrôle de la vitesse à laquelle la courbe est parcourue

Jusqu’ici, nous avons considéré une progression sur la courbe parintervalles égaux de longueur d’arc (vitesse constante).

Pour un parcours contrôlé de la courbe, on doit définir la fonction :

s(t) : [0, tmax] longueur d’arc parcouru à l’instant t

où tmax désigne la durée du mouvement.

Note : Pour se simplifier la tâche, on peut normaliser le paramètret qui devient t’ = t / tmax.

En atteignant la 2ième extrémité de la courbe à tmax,s devient :

s’ = s / longueur de la courbe au complet. La courbe d’espace C(u) définit le point où il faut se rendre, alors que la fonction s(t) en définit l’instant.

Page 21: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

21

Procédure à suivre pour contrôler la vitesse

À chaque instant t = t0, t1 = t0 + , t2 = t0 + 2, …, tmax, > 0- calculer s(t),- calculer u tel que la longueur d’arc de l’origine de la courbe à la position correspondant à u est égale à s(t),- déterminer la position C(u) sur la courbe.

Hypothèses souvent utilisées :

• La totalité de la longueur d’arc de la courbe doit être parcouruependant la totalité du temps donné.

• La fonction s(t) doit être monotone croissante i.e. la courbe doitêtre parcourue sans déplacement arrière.

• La fonction s(t) doit être continue, i.e. il ne doit pas y avoir desauts instantanés sur la courbe.

Page 22: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

22

Exemple courant de contrôle de la vitesse(parcours à 2 phases de type démarrage / arrêt)

Un objet accélère à partir d’une position arrêtée, atteint une vitessemaximale et ralentit à nouveau progressivement jusqu’à l’arrêt.

s(t) = sin( t – / 2) + 1 / 2, t [0, 1]

s'(t) = cos( t – / 2) / 2, t [0, 1]

t

s(t)

1

0 1

La vitesse est nulle à t = 0 et t = 1.Elle est maximale à t = 0,5.

s(t) est normalisée.

Cela indique une accélération à partir d’une position d’arrêt en début demouvement et une décélération jusqu’à l’arrêt en fin de course.

Page 23: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

23

Exemple de contrôle de la vitesse(parcours à 3 phases : accélération – vitesse constante -

décélération)En posant t = t1 et t = t2, les début et fin du parcours intermédiaireà vitesse constante, on obtient :

s(t) =

2 t1 sin t - + 1 f 2 t1 2

. t t1

2 t1 + t - t1

t1 t t2 f

2 t1 (1 – t2) 2 sin t - t2 1 - t2 2 f

+ t2 - t1 + t2 t .

où f = 2 t1 + t2 - t1 + 2(1 – t2)

s(t) est définie de telle sorte que:s(0) = 0 et s(1) = 1,s(t) est continue,s'(t) est continue.

t

s(t)

1

0 1

t1 t2

Page 24: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

24

Exemple de contrôle de la vitesse où des hypothèses sont faites concernant l’accélération

Pour éviter l’évaluation des fonctions trigonométriques, une approcheconsiste à établir des hypothèses de base concernant l’accélération.

Cas élémentaire :

temps

accélération

durée

accélération nulle

temps

vitesse

durée

vitesse constante = v = longueur de la courbe durée de l’animation

v

Page 25: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

25

Cas élémentaire (suite)

temps

s(t)

durée

longueur de la courbe

La fonction s(t) peut être obtenue par intégration.

L’intégration introduit une constante; celle-ci est nulle car s(0) = 0.

Page 26: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

26

Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant l’accélération

Accélération et décélération constantes en début et fin de mouvement.Accélération nulle en milieu de mouvement.

temps

Accélération / décélération

t1

t2 1a1

a2

a(t) =

a1

0

a20

t t1 t1 t t2 t2 t

où a1 > 0a2 < 0.

Page 27: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

27

Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant l’accélération

temps

Vitesse

t1 t2 1

v0

v(t) =

a1 t + v0

a1 t1 + v0

a2 t + a1 t1 – a2t2 + v0

0

t t1 t1 t t2

t2 t

Hypothèses :

v(0) = v0

v(t) est continue

On peut en déduire v(1).a1 t1 + v0

Page 28: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

28

Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant l’accélération

temps

s(t)

t1 t2 1

s(t) =

½ a1 t2 + v0t

(a1 t1 + v0) t - ½ a1 t12

½ a2 t2 + (a1 t1 – a2t2 + v0 ) t + ½ a2 t22 - ½ a1 t1

2

0

t t1 t1 t t2

t2 t

Hypothèses :

s(0) = 0 s(1) = L > 0

(½ a1 t1 + v0) t1

Note :

s(t) est continue

a2 < 0 a1 t1 + v0 - ½ a1 t1

2 > L

distance à parcourir

•(a1 t1 + v0) t2 - ½ a1 t12

L

Page 29: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

29

Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant l’accélération

s(1) = L a2 = L - a1 t1 - v0 + ½ a1 t12

0.5 – t2 + 0.5 t22

En fixant a1, v0 , t1, t2 et L, l’animateur détermine facilement a2.

Cas particulier :

v(1) = v0 = 0 a2 + a1 t1 – a2t2 = 0 a2 = - a1 t1 / (1 - t2) < 0.

Cette dernière méthode est beaucoup plus souple; elle permet àl’animateur d’avoir un plus grand contrôle du mouvement final grâceà la possibilité de définir divers paramètres.

Page 30: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

30

Exemple de contrôle de la vitesse qui consiste à fixer des positions et des vitesses

à des instants précis (ti, v(ti), s(ti)), i = 1, 2, …, NDes techniques d’interpolation sont utilisées pour définir v(t). Cela peutdonner lieu à des formes bizarres.

Exemple :

temps

v(t)

t1

v1

s(0) = 0, s(1) = L, v(0) = 0, v(1) = 0, s(t1) = s1, v(t1) = v1.

v(t) est définie à partir de 2 fonctions du second degré :

temps

v(t) =

t1

v1

Plusieurs fonctions sont possibles pour u(t) selon que s1 > t1v1 / 2 ou non.

u(t), t t1

w(t), t t1

Plusieurs fonctions sont aussi possibles pour w(t) selon la valeur : L - s1.

On revient sur nos pas.

Page 31: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

31

Interpolation de rotations représentées par des quaternions

Les quaternions sont utiles pour la représentation d’orientations.

L’une des principales raisons de choisir des quaternions tient au faitqu’ils peuvent être aisément interpolés.

Il faut d’abord noter qu’une interpolation linéaire directe dequaternions produit un mouvement non linéaire.

Intervalles inégaux

Intervalles égaux

Des interpolations linéaires également espacées de trajet rectiligneentre 2 points d’un cercle génèrent un espacement inégal des pointsaprès projection sur un cercle.

Page 32: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

32

Interpolation de rotations représentées par des quaternions

Afin d’éviter les effets d’agrandissement sur l’interpolation, onutilise généralement des quaternions unitaires i.e. des points de la sphère unitaire dans l’espace 4D.Une interpolation linéaire à intervalles égaux entre 2 quaternionsunitaires ne produira pas des intervalles espacés de manière égalesur la sphère unité.

Nous allons plutôt considérer une interpolation linéaire sphérique:

slerp(q1, q2, t) = [q1 sin(1 – t) + q2 sin t ] / sin où cos = q1. q2 > 0

où q1 et q2 sont des quaternions unitaires.produit scalaire

Page 33: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

Interpolation linéaire sphérique

Propriétés :

(1) slerp(q1, q2, 0) = q1

(2) slerp(q1, q2, 1) = q2

(3) Si est très petit, sin et slerp(q1, q2, t) (1 – t) q1+ t q2

(4) slerp(q1, q2, t) sphère 4D unitaire, t [0, 1]

Soient q1 et q2 des quaternions unitaires,

slerp(q1, q2, t) . slerp(q1, q2, t) = 1

produit scalaire

(5) La courbe slerp(q1, q2, t) (sphère 4D unitaire plan formé par q1, q2 et l’origine)

(q1 x q2) . P = 0

(6) slerp(q1, q2, 0.5) = sin /2 (q1+ q2)sin

On peut calculer q1+ q2

et normaliser le résultat.

Page 34: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

34

Interpolation linéaire sphérique et discontinuité du 1er ordre

Difficulté rencontrée avec l’approche précédente : discontinuité du premier ordre.

K. Shoemake, Animating Rotation with Quaternion Curves, Computer Graphics (Proceedings of SIGGRAPH 85), 19(3), p. 143-152.

Tomas Akenine-Möller, Eric Haines, Real-Time Rendering.A K Peters, 2002, pp. 47-53.

Solution : utiliser une interpolation cubique deBézier pour lisser l’interpolation.

Page 35: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

35

Modification de l’orientation de l’objet en se déplaçant le long d’un trajet

Soit C(u), u [0, 1] la trajectoire courante,C(s), la position courante,(u, v, w) le système de coordonnées local de l’objet,

l’origine de ce système est C(s),

wu

v C(u), u [0, 1]

C(s)

Plusieurs moyens de définir le repère de l’objet :

Utilisation du repère de Frenet

Il est déterminé par la tangente à la courbe et sa courbure :

w = C'(s), u = C'(s) x C''(s) et v = w x u.

Page 36: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

36

Modification de l’orientation de l’objet en se déplaçant le long d’un trajet

Problèmes rencontrés :- lorsque C''(s) = 0,- lorsqu’il y a discontinuité dans le vecteur de courbure,- les mouvements résultants sont généralement trop extrêmes et d’une allure peu naturelle :

utiliser le vecteur de tangente comme direction de vuen’est pas souhaitable.

Une orientation plus naturelle, pour une personnecirculant en voiture ou à bicyclette, consisterait à regarderplus loin vers l’avant sur la courbe.

Exemple : Courbe de Bézier de degré 2 où P, Q et R sont dans le même plan.

P R

Q

C'(u)

C(u) est dans le plan PQR

u est normale au plan PQR.u

v = w x u C'(u) est tangent au plan PQR

Page 37: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

37

Modification de l’orientation de l’objet en se déplaçant le long d’un trajet

Utilisation d’un centre d’intérêt I sur un point fixe de l’environnement

Méthode satisfaisante lorsque le trajet que suit la caméra cerne unezone d’action sur laquelle doit se porter l’attention de la caméra.

w = I – C(s)

On cherche ensuite à fixer le vecteur v généralement dans la directionpositive de l’axe y :

u = w x axe des yv = u x w

ou encore,

v = le vecteur est spécifié explicitement par l’utilisateuru = v x w

Page 38: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

38

Modification de l’orientation de l’objet en se déplaçant le long d’un trajet

Utilisation d’un centre d’intérêt C(s + ) où est fixe

Lorsque s + > 1, on peut procéder par interpolation en utilisant levecteur tangent à la courbe à u = 1.

Cela peut donner lieu à des images saccadées.

Pour solutionner ce problème, on considère la moyenne de plusieurscentres d’intérêt pour tenter de lisser la direction de vue.

Utilisation d’un centre d’intérêt défini à l’aide du trajet I(u), u [0, 1]lequel est complètement indépendant de la trajectoire de parcours del’objet à déplacer

w = I(s) – C(s) u = w x (U(s) – C(s)) v = u x w

où U(s) désigne un trajet de vecteur généralement dans la directionpositive de l’axe y.

Page 39: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

39

Lissage d’un trajetEn utilisant des techniques numériques, la courbe résultante issued’un ensemble de points peut s’avérer trop saccadée.

On peut tenter de lisser les coordonnées des points de plusieursmanières :

Lissage avec interpolation linéairede valeurs adjacentes

Pi + Pi-1 + Pi+1

22

Pi' =

1 Pi-1 + 1 Pi + 1 Pi+1

4 2 4=

Tendance à réduire la courbure (à aplatir la courbe)

Rick Parent, Animatique Algorithmes et techniques. Figure 3.34 & 3.35, p. 112-113.

Page 40: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

40

Lissage avec interpolation cubiquede valeurs adjacentes

Les points adjacents Pi-2, Pi-1, Pi+1, Pi+2 placés de part et d’autre d’unpoint Pi peuvent servir à définir une courbe cubique P(u).La courbe cubique est évaluée en son point médian.

On calcule la moyenne entre le point médian et le point d’origine.

P(u) = a u3 + b u2 + c u + d

Pi-2 = P(0) = d

Pi-1 = P(1 / 4) = a / 64 + b / 16 + c / 4 + d

Pi+1 = P(3 / 4) = 27a / 64 + 9b / 16 + 3c / 4 + d

Pi+2 = P(1) = a + b + c + d

Page 41: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

41

Lissage avec interpolation cubiquede valeurs adjacentes

d = Pi-2

c = -19 Pi-2 + 8 Pi-1 - 8 Pi+1 + Pi+2

3 3

b = 32 Pi-2 - 56 Pi-1 + 40 Pi+1 – 16 Pi+2

3 3 3 3

a = -16 Pi-2 + 32 Pi-1 - 32 Pi+1 + 16 Pi+2

3 3 3 3

P(1 / 2) = -1 Pi-2 + 2 Pi-1 + 2 Pi+1 - 1 Pi+2

6 3 3 6

(P(1 / 2) + Pi) / 2

Page 42: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

42

Lissage avec interpolation cubiquede valeurs adjacentes

Note : Aux extrémités de la courbe, on peut prolonger celle-ci àl’aide d’une parabole.

Rick Parent, Animatique Algorithmes et techniques. Figure 3.40, p. 115.

Page 43: 1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques.

43

Détermination d’un trajet sur une surface

Si un objet se déplace à la surface d’un autre objet, il faut déterminerun trajet sur cette surface.

Si les points de départ et de destination sont connus, il peut êtrecoûteux de trouver le trajet le plus court entre ces points.

Solution alternative pour déterminer des trajets sous-optimaux

Soit un plan qui contient les points de départ et de destination etdont la normale devrait être à peu près perpendiculaire à la surface :

moyenne des normales aux points de départ et de destination,

En considérant un maillage polygonal de la surface, on peut calculerl’intersection entre ce plan et la surface.

FIN