APEX, le framework de simulations physiques basé sur PhysX, verra bientôt l’ajout d’un nouveau module pour les cheveux et autres poils. Actuellement, le module APEX Clothing propose la simulation de tissus qui suivent le personnage qui les porte, comme dans BioShock Infinite.
The Witcher 3: Wild Hunt, attendu en 2014, profitera du module APEX Hair/Fur, qui proposera le même type de fonctionnalités – mais pour des cheveux et des poils, humains ou non.
Ces simulations utilisent des dizaines de milliers de cheveux inextensibles en temps réel pour atteindre cet objectif de réalisme, ce qui requiert une grande puissance de calcul, offerte par les derniers GPU de la marque. Auparavant, ce genre d’effets était limité aux films, puisqu’il n’y avait pas besoin de temps réel.
Pour une simulation aussi rapide, il faut effectuer très peu d’itérations pour chaque image. La technique utilisée, nommée follow the leader (FTL) est géométrique et ne requiert qu’une seule itération, sans pour autant avoir des poils qui s’étirent. L’amélioration apportée par les équipes de NVIDIA est l’extension de cette technique à des cas non statiques.
Chaque poil est constitué d’une série de particules liées les unes aux autres par des distances au repos. À chaque itération, ces particules se meuvent et il faut restaurer l’espacement entre deux (pour éviter l’étirement desdits poils). La version statique de l’algorithme FTL parcourt les positions de tous les points, l’un après l’autre, en modifiant les positions de telle sorte que la particule se situe sur une sphère centrée sur la précédente. La nouvelle position est donnée par le point le plus proche sur la sphère de l’ancienne position.
La nouveauté consiste à améliorer cet algorithme pour le rendre plus dynamique, sortir des hypothèses de quasistaticité. Il faut alors stocker, en plus de la position, la vitesse de chaque particule de chaque poil. L’itération corrigera tant la position que la vitesse, en utilisant la technique de dynamique basée sur les positions (aussi utilisée pour la simulation de fluides). La correction est en général basée sur l’inverse de la masse de chaque particule, mais cela génère un comportement relativement chaotique (exposé dans la vidéo ci-dessous), corrigé par un terme d’amortissement numérique. (Tous les détails sont donnés dans l’article Fast Simulation of Inextensible Hair and Fur, voir plus loin.)
Sources : How NVIDIA Delivered Hairier Effects for Your Favorite Games, Fast Simulation of Inextensible Hair and Fur.