From: <nik...@al...> - 2001-05-26 15:58:25
|
pour plus d'info sur le schema Verlet : http://www.sissa.it/furio/md/md/node21.html en fait, on conserve a chaque fois la position courante (x) et l'ancienne position (x*), et pour calculer la nouvelle position x' : x' =3D 2x - x* + a*delta_t x* =3D x visiblement, c'est surtout utilis=E9 pour la simulation mol=E9culaire (cf= . lien plus haut), mais le gros avantage, outre la stabilit=E9, c'est que =E7a simplifie l'=E9criture des contraint= es, vu que l'on n'a pas =E0 s'occuper de la vitesse de la particule. ceci dit, ce genre de chose est sans doute =E0 r=E9server uniquement au m= oteur de particule (et au mouvement des personnage) vu les approximations faites. gabriel ----- Original Message ----- From: Gabriel Peyr=E9 <nik...@cl...> To: Orion3D - Mailling List <ori...@li...> Sent: Thursday, January 24, 1980 3:45 PM Subject: [Orion3d-dev] moteur de physique attention, nouveau mail chiant mais important! suite =E0 une longue reflexion (avec moi m=EAme), voici mes positions qua= nd au moteur de physique : - pour les objets ordinaires (ie. sans contrainte), on utilise une d=E9te= ction de collision classique (swift++ par ex.), avec un solveur de mouvement la aussi classique, maniant les tenseurs d'inertie et autres choses sympatoches dans le genre. - pour les objets soumis =E0 des contraintes (typiquement les personnages= ) : * ces contraintes sont mod=E9lis=E9es par les bones * on fait une detection de collision symplifi=E9e au niveau des bone= s (par ex. avec des bounding cylindres) * physiquement, on ne gere que des particules pesantes au niveau de chaque extr=E9mit=E9 du bones, ce qui n'est pas tres precis, mais au moins, =E7a squizze tout les problemes de moments d'inertie, ceux ci =E9tant "simul=E9s" par les contraintes de longueur des bones (il peut aussi y avoir des contraintes d'angle). * the question : "comment r=E9soudre le systeme d'equations li=E9 a= ux contraintes???". La reponse : on ne le resout pas. Par exemple, pour un objet soumis =E0 2 contraintes C1 et C2 : on se contente de modifier les objets pour qu'ils r=E9alisent la 1ere contrainte C1, puis on fait de meme pour C2. Probleme : C1 n'est plus forcement v=E9rifi=E9e, donc on re-commence un certain nombre = de fois (typiquement entre 1 et 4). * Ce genre de proc=E9d=E9 est souvent appel=E9 resolution par rela= xations successive, en fait, =E7a ne marche bien que si on se munie d'un schema de r=E9solution des equa-diff du mouvement stable. D= onc pour se faire, on utilise un schema super bourrin, pas du tout r=E9aliste (=E7a augmente l'energie du systeme), mais qui est= mega stable. Chaqu'un lui donne un nom different, je pense Baraff l'appelle Verlet dans son papier d'intro =E0 la resolution d'equa-dif. Je crois aus= si que Jackobsen (c un gars de IOinteractive) l'appelle pareil, mais j'arive plus =E0 mettre la main dessus. Je donnerais plus de detail =E0 ce propos= dans un prochain mail. * Ce qui est cool, c que ce genre de proc=E9d=E9s permet meme de s= imuler =E0 peut de frais de la IK ... J'explique =E7a des que j'ai le tps. a+ gabriel _______________________________________________ Orion3d-dev mailing list Ori...@li... http://lists.sourceforge.net/lists/listinfo/orion3d-dev |