Les opérations utilisées pour faire avancer une simulation physique sont le plus souvent:
- Intégrer la vitesse et la position
- Détection et résolution des collisions
- Résolution des contacts (dans les cas avancés)
Il y a quelque temps, je suis tombé sur ce document de Stanford qui proposait un schéma alternatif, qui est le suivant:
- Détection et résolution des collisions
- Intégrer la vitesse
- Résolution des contacts
- Intégrer la position
C'est intrigant car il permet des solutions robustes au problème d'empilement. Alors je me suis demandé ...
Quels sont, le cas échéant, les systèmes alternatifs disponibles, simples ou complexes? Quels sont leurs avantages, inconvénients et considérations de performances?
la source
Un autre schéma que j'ai rencontré est celui de Position Based Dynamics où vous:
C'est pour montrer qu'il existe bien d'autres schémas. Chacun a ses avantages. PBD est bon pour le tissu par exemple, tandis que le solveur de vitesse semi-implicite est mieux adapté aux rigides.
L'étape de détection de collision doit se situer quelque part après la mise à jour des positions, car peu importe si vous la mettez avant ou après une mise à jour de la vitesse (sauf si vous utilisez la vitesse pour une détection continue). Les choses peuvent devenir encore plus compliquées si vous utilisez des méthodes d'ordre supérieur comme Runge-Kutta: où placez-vous la collision et à quelle fréquence? Je pense que Kenny Erleben a quelques paragraphes à ce sujet (approches paresseuses et avides) au début de sa thèse de doctorat.
la source