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

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

Présentations similaires


Présentation au sujet: "1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques."— Transcription de la présentation:

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. Vuibert, Paris, 2003, 530p. ° Définition ° Choix de la courbe ° Contrôle du mouvement le long dune courbe ° Interpolation de rotations représentées par des quaternions ° Suivi du trajet impliquant une modification de lorientation de lobjet ° Lissage dun trajet ° Détermination dun trajet sur une surface 1. 2.

2 2 Définition Toutes les caractéristiques dune 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 dun objet, -la position dune 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 à une caméra ou à une source lumineuse. Les trajectoires sont définies à laide de courbes paramétriques 3D : C(u) (C x (u), C y (u), C z (u)),u [0, 1].

3 3 Description du contexte auquel fait face lanimateur Cette méthode permet de spécifier avec précision le mouvement dobjets. Les attentes de lanimateur sont claires. Très peu dincertitude à propos des positions et orientations à produire, lordinateur sert uniquement à calculer les valeurs réelles. Choix de la trajectoire Interpolation ou approximation ou techniques de points de contrôle Courbe dinterpolation Courbe dapproximation ou dajustement Échantillon de points rapprochés de la courbe Positions effectives par lesquelles la courbe doit passer.

4 4 Critères de choix de la trajectoire Courbe de Bézier Technique de points de contrôle Liste de points permettant de contrôler la forme de la courbe Complexité de la trajectoire Complexité (degré) Moins rapide est lévaluation des polynômes. Meilleur choix : les polynômes cubiques par morceau. Fournissent un tracé suffisamment régulier tout en procurant suffisamment de flexibilité pour satisfaire aux contraintes de continuité. Un polynôme dordre supérieur noffre pas davantages significatifs.

5 5 Critères de choix de la trajectoire Continuité 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é positionnelleContinuité dordre 0 mais pas tangentielle Continuité dordre 0 et 1 (en animation, cela est suffisant habituellement)

6 6 Critères de choix de la trajectoire Contrôle global par opposition à contrôle local Lorsquon trace une courbe, on procède souvent par raffinements successifs. Contrôle local : la modification dun seul point de contrôle a un effet sur une portion limitée de la courbe. Contrôle global : le repositionnement dun 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 un contrôle local. Les courbes de Bézier de degré élevé présentent un contrôle global. Polygone de contrôle dune courbe de degré 10

7 7 Comparaison de leffet local et global du déplacement dun point de contrôle Contrôle global Contrôle local

8 8 En résumé … Il existe un grand nombre de formulations possibles. La formulation spé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 P 0, P 1, …, P N - le mélange parabolique.

9 9 Contrôle du mouvement le long de la trajectoire C(u), u [0, 1] 1 ière étape dune animation :choisir la forme de la trajectoire. 2 ième étape dune animation :déterminer la vitesse de parcours de la trajectoire C(u) par rapport à u. Premier objectif : Fournir une méthode permettant de progresser le long de la courbe en incréments égaux. Notons dabord que la variation constante du paramètre u ne signifie pas que les positions euclidiennes varieront dune quantité constante i.e. dune vitesse constante. u C(u)

10 10 Comment assurer une vitesse de parcours constante ? Moyen utilisé: la trajectoire doit être paramétrée par longueur darc i.e. selon la distance parcourue sur la courbe. Les 2 problèmes suivants doivent être résolus : (a)Étant donné les paramètres u 1 et u 2, trouver la distance à parcourir sur la courbe entre u 1 et u 2. (b)Étant donné une longueur darc s et une valeur paramétrique u 1, trouver u 2 tel que s = distance à parcourir sur la courbe entre u 1 et u 2. Il faut établir la relation entre u et la longueur darc en spécifiant la fonction s = G(u), qui donne la longueur de la courbe de son point de départ jusquau point correspondant à u. Si G -1 existe, la courbe peut être paramétrée efficacement par longueur darc, i.e. C(G -1 (s)). Ensuite, lanimateur doit fixer la distance que lobjet doit parcourir le long de la courbe à chaque intervalle de temps.

11 11 Approche analytique au calcul de la longueur darc Pour calculer la longueur dune courbe C(u) entre 2 valeurs u 1 et u 2, il sagit dévaluer lintégrale suivante : C(u). C(u)du u1u1 u2u2 s = Impossible à résoudre analytiquement pour une courbe arbitraire. On doit opter pour des techniques dintégration numériques.

12 12 Estimation de la longueur darc par différentiation vers lavant Stratégie la plus simple et la plus facile à concevoir pour faire le lien entre le paramètre u et la longueur dune 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 darc peut être estimée en calculant la distance linéaire entre points adjacents sur la courbe. - Un tableau T est construit avec des longueurs darc indexées par des valeurs paramétriques (u i = 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)

13 13 Utilisation du tableau T pour estimer la longueur darc entre le début de la courbe et le point C(u) sur la courbe où u est fixé dans [0, 1] Lindice i de la composante dans le tableau T dont le paramètre est le plus proche de u est obtenu comme suit : i = u / différence entre 2 entrées successives de u où [ x ] désigne la partie entière de x. Approximation grossière de la longueur darc : T[i]. Approximation grossière : Approximation par interpolation entre les longueurs darc correspondant aux entrées de chaque côté de u : i = u / différence entre 2 entrées successives de u ApproximationT[i] + (T[i+1] – T[i]) * (u - u i ) / (u i+1 - u i ) par interpolation

14 14 Utilisation du tableau T pour estimer la valeur de u, étant donnée la longueur darc s « Étant donné les paramètres u 1 et u 2, trouver la distance à parcourir sur la courbe entre u 1 et u 2 »revient à : appliquer la méthode précédente 2 fois et soustraire les distances respectives obtenues. Problème inverse : lindice i de la composante dans le tableau T dont la longueur darc est la plus proche de celle de s est obtenu par recherche binaire. Approximation grossière du paramètre u associé à s : u i où Approximation par interpolation du paramètre u associé à s : u i + (u i+1 – u i ) * (s – T(i)) / (T(i+1) – T(i)) où lindice i est maximal avec T[i] s.

15 15 Utilisation du tableau T pour estimer la valeur de u, étant donnée la longueur darc s « Étant donné une longueur darc s et une valeur paramétrique u 1, trouver u 2 tel que s = distance à parcourir sur la courbe entre u 1 et u 2 », cela revient à : -estimer la longueur darc associée à u 1, -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 : valeurs paramétriques sur la courbe avec 1000 entrées dans T. chaque intervalle est subdivisé en 10 sous-intervalles. - utiliser des techniques dinterpolation dordre supérieur (non linéaire).

16 16 Approche adaptative Pour mieux contrôler la précision de nos estimés, on peut utiliser une approche qui effectue plus de calculs dans les zones estimées contenir des erreurs importantes. Comme auparavant, il faut construire une structure de données T où la i ième entrée est de la forme : (une valeur paramétrique u i, la longueur darc de lorigine de la courbe à la position correspondant à u i ). une liste chaînée (le # dentrées nest pas connu à priori)

17 17 Description de lalgorithme 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 dans la liste T. Ajouter lélément dans la liste S. 2. Choisir la première entrée de S de la forme (u, u). Calculer u m : la valeur médiane entre u et u. Calculer le point sur la courbe C(u m ). Calculer le point sur la courbe C(u).

18 18 Description de lalgorithme adaptatif (suite) 3. Si | ||C(u) – C(u) || - (||C(u m ) – C(u) || + ||C(u) – C(u m ) || ) | seuil alorsranger dans T lélément, ranger dans T lélément. sinonranger au début de S les 2 éléments suivants : et. Ces valeurs sont déjà dans T. 4. Si la liste S nest pas vide, retourner à létape 2. FIN Inconvénient : À un stade précoce de la procédure, 2 moitiés de segment peuvent indiquer quil est possible darrêter la subdivision. Solution : Forcer la subdivision jusquà un certain niveau avant dappliquer la procédure adaptative.

19 19 Description de lalgorithme adaptatif (fin) au-dessus du seuil au-dessous du seuil Note : La recherche dune entrée dans T nest pas aussi simple que précédemment. On peut opter pour une recherche binaire.

20 20 Contrôle de la vitesse à laquelle la courbe est parcourue Jusquici, nous avons considéré une progression sur la courbe par intervalles égaux de longueur darc (vitesse constante). Pour un parcours contrôlé de la courbe, on doit définir la fonction : s(t) : [0, t max ] longueur darc parcouru à linstant t où t max désigne la durée du mouvement. Note : Pour se simplifier la tâche, on peut normaliser le paramètre t qui devient t = t / t max. En atteignant la 2 ième extrémité de la courbe à t max, s devient : s = s / longueur de la courbe au complet. La courbe despace C(u) définit le point où il faut se rendre, alors que la fonction s(t) en définit linstant.

21 21 Procédure à suivre pour contrôler la vitesse À chaque instant t = t 0, t 1 = t 0 +, t 2 = t 0 + 2, …, t max, > 0 - calculer s(t), - calculer u tel que la longueur darc de lorigine 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 darc de la courbe doit être parcourue pendant 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 de sauts instantanés sur la courbe.

22 22 Exemple courant de contrôle de la vitesse (parcours à 2 phases de type démarrage / arrêt) Un objet accélère à partir dune position arrêtée, atteint une vitesse maximale et ralentit à nouveau progressivement jusquà larrêt. s(t) = sin( t – / 2) + 1 / 2,t [0, 1] s'(t) = cos( t – / 2) / 2,t [0, 1] t s(t) 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 dune position darrêt en début de mouvement et une décélération jusquà larrêt en fin de course.

23 23 Exemple de contrôle de la vitesse (parcours à 3 phases : accélération – vitesse constante - décélération) En posant t = t 1 et t = t 2, les début et fin du parcours intermédiaire à vitesse constante, on obtient : s(t) = 2 t 1 sin t f 2 t 1 2. t t 1 2 t 1 + t - t 1 t 1 t t 2 f 2 t 1 (1 – t 2 ) 2 sin t - t t 2 2f + t 2 - t 1 + t 2 t. où f = 2 t 1 + t 2 - t 1 + 2(1 – t 2 ) 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) t1t1 t2t2

24 24 Exemple de contrôle de la vitesse où des hypothèses sont faites concernant laccélération Pour éviter lévaluation des fonctions trigonométriques, une approche consiste à établir des hypothèses de base concernant laccé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 lanimation v

25 25 Cas élémentaire (suite) temps s(t) durée longueur de la courbe La fonction s(t) peut être obtenue par intégration. Lintégration introduit une constante; celle-ci est nulle car s(0) = 0.

26 26 Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant laccé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 t1t1 t2t2 1 a1a1 a2a2 a(t) = a1a1 0 a2a2 0 t t 1 t 1 t t 2 t 2 t où a 1 > 0 a 2 < 0.

27 27 Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant laccélération temps Vitesse t1t1 t2t2 1 v0v0 v(t) = a 1 t + v 0 a 1 t 1 + v 0 a 2 t + a 1 t 1 – a 2 t 2 + v 0 0 t t 1 t 1 t t 2 t 2 t Hypothèses : v(0) = v 0 v(t) est continue On peut en déduire v(1). a 1 t 1 + v 0

28 28 Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant laccélération temps s(t) t1t1 t2t2 1 s(t) = ½ a 1 t 2 + v 0 t ( a 1 t 1 + v 0 ) t - ½ a 1 t 1 2 ½ a 2 t 2 + ( a 1 t 1 – a 2 t 2 + v 0 ) t + ½ a 2 t ½ a 1 t t t 1 t 1 t t 2 t 2 t Hypothèses : s(0) = 0s(1) = L > 0 ( ½ a 1 t 1 + v 0 ) t 1 Note : s(t) est continue a 2 < 0 a 1 t 1 + v 0 - ½ a 1 t 1 2 > L distance à parcourir ( a 1 t 1 + v 0 ) t 2 - ½ a 1 t 1 2 L

29 29 Exemple de contrôle de la vitesse où des hypothèses plus générales sont faites concernant laccélération s(1) = L a 2 = L - a 1 t 1 - v 0 + ½ a 1 t – t t 2 2 En fixant a 1, v 0, t 1, t 2 et L, lanimateur détermine facilement a 2. Cas particulier : v(1) = v 0 = 0 a 2 + a 1 t 1 – a 2 t 2 = 0 a 2 = - a 1 t 1 / (1 - t 2 ) < 0. Cette dernière méthode est beaucoup plus souple; elle permet à lanimateur davoir un plus grand contrôle du mouvement final grâce à la possibilité de définir divers paramètres.

30 30 Exemple de contrôle de la vitesse qui consiste à fixer des positions et des vitesses à des instants précis ( t i, v( t i ), s( t i )), i = 1, 2, …, N Des techniques dinterpolation sont utilisées pour définir v(t). Cela peut donner lieu à des formes bizarres. Exemple : temps v(t) t1t1 v1v1 s(0) = 0, s(1) = L, v(0) = 0, v(1) = 0, s( t 1 ) = s 1, v( t 1 ) = v 1. v(t) est définie à partir de 2 fonctions du second degré : temps v(t) = t1t1 v1v1 Plusieurs fonctions sont possibles pour u(t) selon que s 1 > t 1 v 1 / 2 ou non. u(t),t t 1 w(t),t t 1 Plusieurs fonctions sont aussi possibles pour w(t) selon la valeur : L - s 1. On revient sur nos pas.

31 31 Interpolation de rotations représentées par des quaternions Les quaternions sont utiles pour la représentation dorientations. Lune des principales raisons de choisir des quaternions tient au fait quils peuvent être aisément interpolés. Il faut dabord noter quune interpolation linéaire directe de quaternions produit un mouvement non linéaire. Intervalles inégaux Intervalles égaux Des interpolations linéaires également espacées de trajet rectiligne entre 2 points dun cercle génèrent un espacement inégal des points après projection sur un cercle.

32 32 Interpolation de rotations représentées par des quaternions Afin déviter les effets dagrandissement sur linterpolation, on utilise généralement des quaternions unitaires i.e. des points de la sphère unitaire dans lespace 4D. Une interpolation linéaire à intervalles égaux entre 2 quaternions unitaires ne produira pas des intervalles espacés de manière égale sur la sphère unité. Nous allons plutôt considérer une interpolation linéaire sphérique: slerp(q 1, q 2, t) = [q 1 sin(1 – t) + q 2 sin t ] / sin où cos = q 1. q 2 > 0 oùq 1 et q 2 sont des quaternions unitaires. produit scalaire

33 Interpolation linéaire sphérique Propriétés : (1)slerp(q 1, q 2, 0) = q 1 (2)slerp(q 1, q 2, 1) = q 2 (3) Si est très petit, sin et slerp(q 1, q 2, t) (1 – t) q 1 + t q 2 (4) slerp(q 1, q 2, t) sphère 4D unitaire, t [0, 1] Soient q 1 et q 2 des quaternions unitaires, slerp(q 1, q 2, t). slerp(q 1, q 2, t) = 1 produit scalaire (5) La courbe slerp(q 1, q 2, t) (sphère 4D unitaire plan formé par q 1, q 2 et lorigine) (q 1 x q 2 ). P = 0 (6) slerp(q 1, q 2, 0.5) =sin /2 (q 1 + q 2 ) sin On peut calculer q 1 + q 2 et normaliser le résultat.

34 34 Interpolation linéaire sphérique et discontinuité du 1 er ordre Difficulté rencontrée avec lapproche précédente : discontinuité du premier ordre. K. Shoemake, Animating Rotation with Quaternion Curves, Computer Graphics (Proceedings of SIGGRAPH 85), 19(3), p Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, pp Solution : utiliser une interpolation cubique de Bézier pour lisser linterpolation.

35 35 Modification de lorientation de lobjet en se déplaçant le long dun trajet SoitC(u), u [0, 1] la trajectoire courante, C(s), la position courante, (u, v, w) le système de coordonnées local de lobjet, lorigine de ce système est C(s), w u v C(u), u [0, 1] C(s) Plusieurs moyens de définir le repère de lobjet : 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) etv = w x u.

36 36 Modification de lorientation de lobjet en se déplaçant le long dun trajet Problèmes rencontrés : - lorsque C''(s) = 0, - lorsquil y a discontinuité dans le vecteur de courbure, - les mouvements résultants sont généralement trop extrêmes et dune allure peu naturelle : utiliser le vecteur de tangente comme direction de vue nest pas souhaitable. Une orientation plus naturelle, pour une personne circulant en voiture ou à bicyclette, consisterait à regarder plus loin vers lavant 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

37 37 Modification de lorientation de lobjet en se déplaçant le long dun trajet Utilisation dun centre dintérêt I sur un point fixe de lenvironnement Méthode satisfaisante lorsque le trajet que suit la caméra cerne une zone daction sur laquelle doit se porter lattention de la caméra. w = I – C(s) On cherche ensuite à fixer le vecteur v généralement dans la direction positive de laxe y : u = w x axe des y v = u x w ou encore, v = le vecteur est spécifié explicitement par lutilisateur u = v x w

38 38 Modification de lorientation de lobjet en se déplaçant le long dun trajet Utilisation dun centre dintérêt C(s + ) où est fixe Lorsque s + > 1, on peut procéder par interpolation en utilisant le vecteur tangent à la courbe à u = 1. Cela peut donner lieu à des images saccadées. Pour solutionner ce problème, on considère la moyenne de plusieurs centres dintérêt pour tenter de lisser la direction de vue. Utilisation dun centre dintérêt défini à laide du trajet I(u), u [0, 1] lequel est complètement indépendant de la trajectoire de parcours de lobjet à 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 direction positive de laxe y.

39 39 Lissage dun trajet En utilisant des techniques numériques, la courbe résultante issue dun ensemble de points peut savérer trop saccadée. On peut tenter de lisser les coordonnées des points de plusieurs manières : Lissage avec interpolation linéaire de valeurs adjacentes P i + P i-1 + P i+1 2 P i ' = 1 P i P i + 1 P i = Tendance à réduire la courbure (à aplatir la courbe) Rick Parent, Animatique Algorithmes et techniques. Figure 3.34 & 3.35, p

40 40 Lissage avec interpolation cubique de valeurs adjacentes Les points adjacents P i-2, P i-1, P i+1, P i+2 placés de part et dautre dun point P i 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 dorigine. P(u) = a u 3 + b u 2 + c u + d P i-2 = P(0) = d P i-1 = P(1 / 4) = a / 64 + b / 16 + c / 4 + d P i+1 = P(3 / 4) = 27a / b / c / 4 + d P i+2 = P(1) = a + b + c + d

41 41 Lissage avec interpolation cubique de valeurs adjacentes d = P i-2 c = -19 P i P i P i+1 + P i b = 32 P i P i P i+1 – 16 P i a = -16 P i P i P i P i P(1 / 2) = -1 P i P i P i P i (P(1 / 2) + P i ) / 2

42 42 Lissage avec interpolation cubique de valeurs adjacentes Note : Aux extrémités de la courbe, on peut prolonger celle-ci à laide dune parabole. Rick Parent, Animatique Algorithmes et techniques. Figure 3.40, p. 115.

43 43 Détermination dun trajet sur une surface Si un objet se déplace à la surface dun autre objet, il faut déterminer un trajet sur cette surface. Si les points de départ et de destination sont connus, il peut être coû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 et dont 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 calculer lintersection entre ce plan et la surface. FIN


Télécharger ppt "1 ANIMATION PAR TRAJECTOIRES Tomas Akenine-Möller, Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p. Rick Parent, Animatique Algorithmes et techniques."

Présentations similaires


Annonces Google