Sonia Dakhli

Simulation de tissus

Collision tissu / sphère

Réalisé à l’automne 2023.

1ère Année de Master.

UE : M1IF37 - Animation en synthèse d'images

Durée : 1 mois.

Langage de programmation : C++ (utilisation de la librairie gkit2light)


Animation d'un tissu soumis à la force du vent. Utilisation d'un système masse-ressorts. Les ressorts sont des liens entre deux particules, une particule A et une particule B. Pour calculer les forces appliquées à chaque ressort, des informations sur ces particules (leur vitesse et leur position) sont nécessaires.


Fonctionnalités

Forces extérieures

Outre la gravité, implémentation d'une force correspondant à la force du vent ; cette force est appliquée sur le plan Z.


Déchirure

En appuyant sur « m » + touches fléchées l'utilisateur peut déplacer le sommet gauche du tissu qui se déchire au bout d’un moment.
La déchirure peut également se produire à n’importe quel moment. Il faut pour cela que la longueur entre deux particules soit supérieure à une valeur donnée (ici 1). Si cette longueur est dépassée, le ressort correspondant est supprimé.


Tombé de tissu

Le tissu peut tomber sous l’effet de la gravité, en étant également soumis aux autres forces extérieures (vent). Dans le programme, le tissu est d’abord accroché, puis il se décroche au bout de deux secondes.


Collisions

Collision avec le plan

Quand un sommet du tissu entre en collision avec le plan, sa vitesse et son accélération sont mises à 0 et sa position devient celle du point de collision.

Collision avec une sphère

Collision tissu / sphère

Quand un sommet du tissu entre en collision avec une sphère, sa vitesse et son accélération sont mises à 0 et sa position est mise en dehors de la sphère.

Collision avec une table

Collision tissu / table

La collision avec la table est une collision entre le tissu et plusieurs cubes. Si un point du tissu entre en collision avec la table (c’est-à-dire si ses coordonnées sont à l’intérieur d’un des cubes), alors la vitesse et l’accélération sont mises à 0 et sa position est mise en dehors de la sphère.