D3DXMATRIX : probleme déformation

Signaler
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
-
Messages postés
17
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
26 février 2005
-
Bonjour, je voudrais pouvoir appliqué a un objet différentes rotations et translations étant soumises a inertie.
J'ai donc créé des matrices pour recevoir les mouvement:
-mat0 : contient la position en translation
-mat1 : contient la position en rotation
-mat2 : contient l'inertie en translation
-mat3 : contient l'inertie en rotation

Ainsi, a chaque frame mat0 subit mat2 et mat1 subit mat3 grace a D3DXMatrixMultiply(), puis japplique a l'objet la matrice résultant des transformation mat2 puis mat0. Ca marche presque...

Le probleme c'est que les transformation "s'accumule" dans mat0 et mat1 et que petit à petit l'objet se déforme, donc je voudrais savoir comment maintenir les facteur de "scaling" à un pour empécher les déformations.

Merci!

2 réponses

Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
A mon avis le problème est au niveau mathématique et mécanique car je ne comprends pas bien la façon dont tu as posé le problème.

Je ne vois pas comment ton algo peut fonctionner. Tu parles d'inerties, mais pas de forces, de positions, mais pas d'intervalles de temps...

Je ne vois pas du tout comment exploiter le resultat de la multiplication d'une matrice d'inertie par une matrice de position....
A vrai dire, je en comprend pas bien le terme "matrice de position".

Le PFD:
Somme_des_forces = masse*acceleration_translation
Somme_des_couples = inertie*acceleration_angulaire

Sommes = vecteurs3
masse = scalaire
inertie = matrice3*3
accelerations = vecteurs3

donc:
acceleration_translation=Somme_des_forces/masse
vitesse_translation = vitesse_translation + acceleration_translation * delta_temps
position=position + vitesse_translation * delta_temps

A peu de chose près, c'est la meme chose pour la rotation.

C'est la clé des moteurs physiques.

Si j'ai mal compris ton problème, excuse-moi.
Messages postés
17
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
26 février 2005

N'utilise pas des matrices mais des quaternions ( que tu peux
normaliser ) pour les rotations et des vecteurs ( pour les translations
). Transforme le tout en matrices au moment où tu en as besoin.