Séance 6: Simulation
Scène 3D possible après integration d'une animation
Masses ressorts
Code associé à cette partie: scenes_inf443/06_simulation/Système à 2 particules
On considère deux particules A et B reliées par un ressort.La particule A est supposée fixe, alors que la particule B est animée. Les forces s'appliquant sur la particule B sont:
- Le poids: \(F_{weight}=m\,g\)
- La force de rappel du ressort \(F_{spring}= -K\,(L-L_0)\,u\)
-
- - \(K\): Constante de raideur du ressort (stiffness)
- - \(L\): Distance entre les positions de la particule A et B
- - \(L_0\): Longueur de repos (distance entre les deux particules telles que le ressort soit au repos).
- - \(u\): Vecteur unitaire de A vers B
- Une force de frottement fluide (damping) \(F_{damping}=-\mu\,v\)
-
- - \(\mu\): Constante de frottement
- - \(v\): Vitesse de la particule B
Système à 3 particules
Modifiez le code de manière à ajouter une troisième particule C, reliée par un ressort à B. Mettez en place les différentes forces nécessaires au modèle.-
Réfléchissez à quelles forces doivent intervenirs sur vos particules, et faites vérifier votre résultat une fois mis en place.
Animation attendue avec deux particules.
Système à N particules
Généralisez l'approche en considérant une suite de \(N\) particules reliées par des ressorts.- - En fonction de la rigidité des ressorts, cette suite de particule permet de modéliser des cordes se déformant de manière légèrement élastique.
- - Il peut être nécessaire de réduire le pas de temps de l'intégration numérique/augmenter le coefficient de friction afin d'éviter que la résolution numérique diverge.
- - Il est possible d'ajouter des ressorts dits "de courbures" reliant les voisins d'ordre deux (c'est à dire d'ajouter un ressort entre deux particules séparées par une autre) pour obtenir une courbe se déformant de manière plus lisse et rigide.
- - Il est possible de réaliser plusieurs pas d'intégration numérique lors d'une même frame, l'animation semblera plus rapide.
Exemple d'animations possibles avec une suite de ressorts tenues par, une, ou deux extremitées
Intégration dans la scène
Finalement, et uniquement si vous êtes en avance, il est possible d'intégrer des étapes de simulation afin d'animer différents objets dans votre scène 3D complète.L'exemple suivant est réalisé en utilisant une chaine masse ressort entre un point fixe du sol et le modèle animé d'oiseau, ainsi que des sphères lancées comme des projectiles rebondissants sur le terrain.
Rem.
- - L'intégration de ces modèles peut nécessiter certaines adaptations du code. Commenez par des choses simples, et itérer au fur et à mesure.
- - Le rebond nécessite également la connaissance de l'orientation du terrain à l'endroit de l'impact. Réfléchissez à un moyen d'évaluer cela.