La Figure 4.10 montre deux images tirées de nos animations de cheveux. Notre algorithme
d’auto-ombrage capture les discontinuités fines que l’on peut observer dans une chevelure réelle en
mouve-ment, comme illustré sur la Figure 4.11.
FIG. 4.10: Une chevelure brune, lisse (100K segments) et une chevelure rousse, bouclée (200Ksegments) animées sur différents mouvements de danse, et rendues interactivement par notre algorithme.
Le tableau 4.2 donne les performances détaillées de la simulation totale, comprenant, l’animation,
la gestion des collisions entre cheveux, et le rendu, pour des chevelure lisses et bouclées. Noter que
le temps consacré à l’animation n’est pas le même pour les deux chevelures, car ce temps inclut les
mises à jour et l’interpolation des cheveux avant le rendu.
Modèle de cheveux simulé Animation Auto-collisions Rendu Total
(nombre de segments) cheveux simulation
Lisse (100K) 0,067 0,003 0,09 0,16
Bouclée (200K) 0,254 0,003 0,13 0,557
T
AB. 4.2:
Performances détaillée de la simulation (animation, rendu et collisions entre cheveux) obtenues pour deux types de chevelures composées chacune de 134 mèches animées : une chevelure lisse (100Ksegments rendus) et une chevelure bouclée (200Ksegments rendus). Les résultats sont exprimés en secondes par image ; les calculs ont été effectués sur un CPU Intel P4 à une fréquence de 3 GHz.Avec notre méthode, une chevelure composée de 3350 cheveux et de 100K segments est donc
entièrement simulée à une fréquence de 6 images par seconde. Pour des raisons esthétiques, nous
avons implémenté les collisions entre la chevelure et le corps, en utilisant une méthode de pénalité
similaire à celle utilisée dans le chapitre précédent. La prise en compte de ces collisions fait tomber
les performances à 3
5 images par seconde pour la chevelure lisse, et 1
5 images par seconde pour la
chevelure bouclée. Précisons que notre but ici n’était pas d’optimiser cette partie du problème.
FIG. 4.11:Une vraie chevelure ombrée (à gauche) et notre modèle (à droite) sous des conditions d’éclairage similaires.
Dans notre approche, le volume de la chevelure est généré convenablement un utilisant un champ
de forces basé sur les densités locales de cheveux, comme expliqué en Section 4.1. Cependant, cette
méthode ne tient pas compte de l’anisotropie des cheveux ni de l’interpénétration des mèches entre
elles. Ceci pourrait être considéré en ajoutant des informations supplémentaires dans la carte d’ombre
comme l’orientation locale moyenne des cheveux.
6 Bilan
Nous avons présenté une nouvelle méthode d’auto-ombrage, basée sur une carte de densité
orien-tée selon la direction de la lumière. Notre approche permet de rendre interactivement différents types
de chevelures composées de milliers de cheveux, et produit des résultats visuellement convaincants.
Notre algorithme peut facilement être parallélisé pour améliorer les performances. De plus, nous
avons montré que la carte de densité pouvait servir non seulement à gérer de manière efficace les
interactions lumineuses entre cheveux, mais également les interactions mécaniques telles que les
col-lisions, en réduisant notablement le coût de la détection. Une piste pour des travaux futurs serait
d’utiliser l’information de densité afin d’optimiser également la détection des collisions entre les
che-veux et le corps.
Pour des raisons de simplicité, notre approche est basée sur l’hypothèse d’une source lumineuse
unique et infiniment lointaine, ce qui pourrait être une limitation si l’on souhaite traiter par exemple
des scènes d’intérieur, éclairées par plusieurs sources ponctuelles. Cependant, il semble que nous
pourrions facilement traiter le cas d’une source ponctuelle en changeant simplement notre fonction de
correspondanceΨΨΨ. Au lieu de considérer une partition cubique uniforme, la nouvelle fonction de
cor-respondanceΨΨΨ
%devrait tenir compte d’une partition spatiale angulaire issue de la source de lumière,
et échantillonnée dans la direction des rayons lumineux. Notre méthode pourrait également prendre
en compte plusieurs sources de lumière en multipliant simplement le nombre de cartes d’ombre
consi-dérées. La transmittance finale d’un pointPserait alors calculée par interpolation entre les différentes
valeurs de transmittance obtenues depuis les différentes sources.
Pour obtenir une meilleure précision du rendu sans trop augmenter le coût des calculs, une idée
intéressante serait de suivre l’approche de Mertenset al.[MKBR04]. Cette méthode utilise un
échan-tillonnage adaptatif le long des rayons lumineux, en fonction du nombre et de la répartition des objets
à éclairer, et fournit ainsi une meilleure approximation de la fonction de visibilité par rapport aux
approches qui se basent sur un échantillonnage uniforme.
Tous les résultats de chevelures présentés dans la suite de ce mémoire ont été rendus grâce à la
méthode d’auto-ombrage développée dans ce chapitre, combinée cette fois avec l’algorithme
d’illu-mination locale de Marschner et al.
2[MJC
03] (voir Figure 4.12). Nous avons également pris en
compte dans ce nouveau modèle la translucidité des fibres capillaires au moment du rendu OpenGL,
en triant la géométrie de la chevelure selon la distance à la caméra, puis en l’affichant dans ce même
ordre, accumulant ainsi les valeurs d’alpha d’OpenGL (voir [Kim02] pour plus de détails sur cet
algorithme). Cette nouvelle méthode, plus réaliste que la précédente, ne permet bien sûr plus de
gé-nérer des résultats en temps interactif ; néanmoins, une dizaine de secondes seulement est nécessaire
en moyenne pour produire le rendu de chevelures complètes telles que celles qui sont présentées sur
la Figure 4.12. Dans la suite de nos travaux, nous avons ainsi pu disposer de deux niveaux de rendu
distincts : le premier (tel que décrit dans ce chapitre), très rapide, nous a servi à pré-visualiser nos
résultats en cours de modélisation ou de réglage de paramètres ; le second, plus réaliste, nous a été
utile pour rendre nos coiffures et nos animations finales.
FIG. 4.12:Résultats de rendus de chevelures, obtenus en combinant notre algorithme d’auto-ombrage avec le modèle d’illumination de Steve Marschner [MJC 03], et en prenant également en compte la translucidité des fibres pour le tracer des cheveux individuels : a) rendu que nous avons généré à partir d’une géométrie de chevelure capturée par la méthode de Wei et al. [WOQS05] ; b) rendu d’une chevelure générée par notre méthode de simulation statique présentée au Chapitre 6 ; c) d) et e) rendus de chevelures générées par notre méthode de simulation dynamique présentée au Chapitre 7.
2Je tiens à remercier chaleureusement Steve Marschner pour avoir bien voulu me laisser utiliser son code d’illumination locale de cheveux. Merci également à Sylvain Paris pour son aide dans la prise en main du logiciel de Steve Marschner.
Simulation réaliste de chevelures
Introduction
Toutes les méthodes de simulation de chevelures présentées au sein de la communauté
d’infor-matique graphique jusqu’à présent se sont finalement limitées à l’utilisation de modèles physiques
assez approximatifs pour la chevelure. En particulier, aucune des méthodes précédentes n’est capable
de prendre en compte, de manière réaliste, certains comportements typiques des cheveux réels tels
que la formation de boucles, la dynamique de cheveux bouclés, le rôle de l’encastrement et de la
section elliptique du cheveu dans la détermination de la forme de la chevelure, l’effet de l’eau sur les
cheveux, etc.
Certes, des modèles pseudo-physiques, dont le but est principalement de créer l’illusion du réel,
suffisent parfois pour des applications purement visuelles destinées à l’industrie du loisir, et peuvent
même s’avérer nécessaires lorsque d’autres contraintes (temps-réel pour le jeu vidéo, contrôlabilité
du logiciel par l’infographiste, etc.) s’ajoutent à celle de la plausibilité physique d’une animation.
Cependant, de telles approches ne seraient pas satisfaisantes dans le cadre d’une application où l’on
souhaite utiliser un simulateur réaliste, fiable, et présentant des aspects prédictifs, comme cela pourrait
typiquement être le cas en cosmétologie.
Contrairement à d’autres domaines étudiés depuis plus d’un siècle en physique - comme la
dy-namique des fluides par exemple, pour laquelle les équations de Navier-Stokes font office de modèle
de référence - il n’existe actuellement pas de modèle mécanique validé ni reconnu pour animer des
cheveux. Proposer un simulateur physique réaliste de cheveux constitue donc un projet très
ambi-tieux, qui, en plus de compétences en informatique graphique, nécessite une bonne compréhension
des propriétés mécaniques des cheveux ainsi qu’une solide maîtrise des méthodes de modélisation
en mécanique ; et bien évidemment, tout le travail que nous avons effectué dans le cadre de ce
pro-jet n’aurait pas pu être entrepris sans la collaboration que nous avons menée avec les chercheurs de
L’Oréal, physiciens spécialistes du cheveu, et Basile Audoly, chercheur en modélisation mécanique.
Grâce à ce partenariat fortement pluridisciplinaire, il est apparu qu’il était possible d’aller beaucoup
plus loin dans la modélisation mécanique réaliste des cheveux que tout ce qui avait déjà été fait en
informatique graphique auparavant.
Tige de Kirchhoff et modèle de
Super-Hélice
Le livre de la Nature est écrit dans le langage des Mathématiques et ses lettres sont des triangles, des cercles et autres figures géométriques.
GALILÉE
ES