J'écris un moteur physique qui utilise l'intégration de Verlet, et je ne peux pas obtenir certaines contraintes pour bien fonctionner. Certains (comme une contrainte de liaison/soudure) sont extra "détrempés" et ne sont pas assez rigides, tandis que d'autres (comme une contrainte de zone) sont très gonflables et envoient des atomes voler. Le code pour ma mise à jour ODE dans mon simulateur de physique est comme ceci:Ordre de calcul et itérations pour les moteurs physiques
ProcessRemovedItems();
ProcessAddedItems();
_colliderManager.Update(timestepSize);
foreach (Atom atom in _atomList)
{
atom.Update(timestepSize);
}
for (int i = 0; i < _iterations; i++)
{
foreach (IConstraint constraint in _constraintList)
{
constraint.Update();
}
}
J'ai essayé toutes les combinaisons idfferent de commandes de mise à jour et aucune aide. J'ai une vague idée de quelque chose à propos de l'utilisation des itérations, mais je n'ai aucune idée de ce qui pourrait aider. Aucune suggestion?
Eh bien, qu'est-ce que vous essayez de réaliser exactement? Impossible de relier votre code à la description de votre problème. Quels sont les résultats que vous attendez de vos codes? –
J'essaie de faire en sorte que les contraintes se comportent comme je le veux. – RCIX