• Aucun résultat trouvé

Rendu de chevelures dynamiques

Dans le document Simulation de chevelures virtuelles (Page 109-117)

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

équations de Kirchhoff décrivent les déformations des tiges élastiques et

inex-tensibles. Ces équations, bien que formulées dans le cadre de l’élasticité linéaire

Hookéenne, sont non-linéaires et permettent de décrire des changements

impor-tants de formes à partir de la configuration de repos d’une tige. Reposant sur des

bases mécaniques bien établies, les équations de Kirchhoff tiennent naturellement

compte de tous les modes de déformations observés, dans nos conditions d’étude,

sur les cheveux réels (courbure et torsion significatives, élongation négligeable).

De plus, tous les paramètres intervenant dans ces équations sont reliés à des propriétés simples du

cheveu telles que sa frisure ou l’ellipticité de sa section. Pour toutes ces raisons, les équations de

Kir-chhoff apparaissent comme un modèle beaucoup plus puissant et pertinent que les modèles précédents

pour simuler des cheveux de manière réaliste.

Ce chapitre a pour premier objectif de présenter de manière synthétique le modèle de tige de

Kirchhoff, dans le cas dynamique (le plus général). Nous montrons d’abord que ce modèle, bien

que très peu exploité jusqu’alors en informatique graphique, présente un certain nombre d’avantages

par rapport aux modèles utilisés précédemment pour simuler des cheveux ou des fils. Ensuite, nous

décrivons précisément les équations des tiges de Kirchhoff, en nous appuyant sur deux ouvrages

récents en mécanique : d’une part, la thèse de Nadia Chouaïeb [Cho03], qui expose brièvement en

introduction la théorie générale de Cosserat sur les tiges ; d’autre part un ouvrage en cours de Basile

Audoly et Yves Pomeau [AP07], qui se place dans le cadre plus restreint des hypothèses de Kirchhoff.

Une fois ce cadre théorique fixé, nous proposons une discrétisation spatiale du modèle de tige de

Kirchhoff, le modèle deSuper-Hélice. Ce nouveau modèle discret nous sera très utile dans la suite

pour simuler des cheveux, à la fois en statique et en dynamique.

1 Modèles précédents de fils

Comme nous l’avons vu au Chapitre 1, trois familles de modèles physiques ont été proposées

pré-cédemment pour simuler la dynamique de cheveux individuels : les systèmes masses-ressorts [RCT91,

PCP01, WL03], la dynamique projetée à deux dimensions angulaires [AUK92, DMTKT93, LK01], et

les chaînes articulées d’objets rigides [HMT01, CJY02]. En réalité, seul le dernier modèle permet de

tenir compte des déformations en courbure et en torsion de la tige. Il a également l’avantage

d’incorpo-rer de manière intrinsèque la condition d’inextensibilité du cheveu. Cependant, chaque morceau

élé-mentaire d’une chaîne articulée étant rigide (donc non déformable), il est nécessaire d’échantillonner

suffisamment le cheveu pour pouvoir prendre en compte des déformations importantes en courbure

ou en torsion. Il semble donc que ce modèle ne soit pas très bien adapté à la simulation de cheveux

naturellement bouclés. D’autre part, comme le souligne Hadap dans sa thèse [Had03], la formulation

classique des équations par les coordonnées généralisées du système rend très difficile l’utilisation

d’un schéma implicite pour l’intégration en temps. Il en résulte d’importantes sources d’instabilité au

cours de l’animation, en particulier lorsque la tige est en contact avec des objets extérieurs.

Outre les modèles de cheveu individuel, développés spécifiquement pour la simulation de

che-veux, des modèles linéiques ont été proposés en informatique graphique pour simuler des objets de

type fil/corde. Même si les objectifs dans les deux cas peuvent être très différents (un modèle de

che-veu unique est généralement conçu en vue d’être ensuite étendu à une collection de cheche-veux, tandis

que les travaux portant sur la simulation d’un fil ou d’une corde se focalisent plutôt sur le contrôle et

la manipulation interactive d’un tel objet), il est intéressant d’étudier les différents modèles physiques

qui ont été mis au point pour simuler un fil déformable.

Dans le document Simulation de chevelures virtuelles (Page 109-117)