La Figure 6.12 expose quelques résultats de coiffures que nous avons réalisées en nous inspirant
de chevelures réelles, de formes diverses. Au moment de la réalisation de ce travail, nous ne disposions
pas des valeurs précises des paramètres géométriques et physiques des cheveux mesurés à partir de
chaque chevelure réelle. Nous avons alors choisi de fixer les paramètres d’entrée de la simulation en
utilisant les valeurs moyennes classiques données dans les ouvrages spécialisés sur le cheveu [Rob02,
BW05] :E
1GPa ;µ
0
3 ;ρ
1
3g
Qcm
3.
Nous avons ajusté le degré de frisure grâce à l’une des deux courbures naturelles (et en fixant la
seconde à zéro). De plus, ayant remarqué à la Section 1.3 que l’excentricité de la section de la tige
avait un impact sur la régularité des boucles le long de la tige, nous avons joué sur ce paramètre pour
obtenir différentes formes de boucles. Ainsi, sur la Figure 6.12, pour obtenir la frisure de type anglaise
de la coiffure en b), nous avons fixé ce paramètre à une valeur nulle. En revanche, nous avons choisi
une valeur non nulle de ce paramètre (proche de 0
1) pour obtenir la frisure régulière des racines aux
pointes de la coiffure en c).
FIG. 6.12:Comparaison entre des coiffures générées par notre logiciel et des coiffures réelles. À droite de chaque couple d’images : images réelles de cheveux (a) raides, (b et c) bouclés et (d) crépus. À gauche : résultats synthétiques correspondants, générés à partir de valeurs adéquates pour l’excentricité de la section du cheveu e et pour les courbures naturellesκ0
i. Chacune des coiffures de synthèse a été réalisée à l’aide de notre logiciel en moins de 30 minutes.
Afin de vérifier que nos prédictions sur la valeur approximative du paramètreeétaient justifiées
pour chacune des chevelures (b) et (c) de la Figure 6.12, nous avons demandé à L’Oréal une analyse
au vidéo-microscope des échantillons de cheveux appartenant à chacune de ces deux chevelures. Ces
analyses ont révélé que les cheveux en c) présentent effectivement une section elliptique, tandis que
les cheveux en b) ont une section plutôt ronde (voir Figure 6.13). Cette validation a donc confirmé en
partie nos hypothèses, à savoir que la forme elliptique de la section d’un cheveu bouclé influe sur la
régularité longitudinale de sa frisure.
Cependant, d’autres études plus approfondies seraient nécessaires pour conclure sur l’influence
réelle de la géométrie de la section du cheveu relativement à l’influence de ses courbures naturelles.
En particulier, nous avons fait l’hypothèse, dans nos expérimentations, que les courbures naturelles
étaient constantes le long du cheveu (bien que ce ne soit pas une restriction du modèle), ce qui n’est
pas forcément le cas dans la réalité. Toutefois, il demeure très difficile d’avoir une estimation précise
des variations de frisure naturelle le long de la tige.
FIG. 6.13:Grossissement au vidéo-microscope des chevelures en b) et c) de la Figure 6.12. Comme prédit par notre modèle, les cheveux de la chevelure en b) (ici à gauche) ont une section ronde, tandis que les cheveux de la chevelure en c) (à droite) ont une section ronde à elliptique.
4 Bilan
Nous avons présenté une nouvelle méthode permettant de calculer automatiquement la géométrie
d’une chevelure naturelle à partir des caractéristiques structurelles, physiques et ethniques du cheveu.
Notre approche s’appuie sur un modèle robuste et validé simulant la statique des tiges de Kirchhoff.
Comme le montrent nos résultats, cette approche permet de générer des formes de chevelures variées
et fidèles à la réalité.
Actuellement, notre méthode est principalement limitée par le coût en temps de calcul nécessaire
pour générer la configuration à l’équilibre d’une chevelure complète (6 secondes en moyenne sont
nécessaires pour calculer une configuration à l’équilibre d’une chevelure telle que celles qui sont
pré-sentées sur la Figure 6.12). La limitation des performances de l’application nous empêche d’utiliser
plus d’une centaine de cheveux directeurs dans notre système de modélisation de coiffure. Cependant,
les résultats obtenus sont visuellement très satisfaisants avec ce nombre limité de cheveux directeurs,
grâce à notre modèle procédural de mèche.
Nous envisageons d’étudier actuellement la prise en compte de l’angle d’encastrement des
che-veux dans le cuir chevelu pour générer la forme finale d’une chevelure. En effet, l’implantation
des cheveux a un impact assez important sur la forme d’une chevelure, surtout lorsque celle-ci est
courte. Nous souhaiterions en outre intégrer au modèle quelques caractéristiques artificielles (raies
par exemple) pour obtenir des styles de coiffure plus variés.
Simulation dynamique de chevelures
E MODÈLE
statique de chevelures, présenté au chapitre précédent, a démontré sa
puissance de représentation et a permis de manipuler interactivement des
cheve-lures de types très variés, dont la forme est contrôlée à partir d’un nombre réduit
de paramètres intuitifs. Cependant, il n’est pas possible d’étendre cette approche
pour prendre en compte le mouvement dynamique des cheveux, car la méthode de
résolution par minimisation d’énergie potentielle s’applique exclusivement au cas statique (recherche
d’états d’équilibre). Pour traiter le cas dynamique, il faut résoudre les équations dynamiques des tiges,
ce qui s’avère beaucoup plus complexe.
Une partie importante de la collaboration autour de la modélisation des cheveux a donc été
consa-crée à la recherche d’un modèle stable pour la simulation du mouvement des tiges de Kirchhoff. Ce
travail de modélisation mécanique a été confié à Basile Audoly. J’ai quant-à-moi participé à
l’implé-mentation, au test et à la validation des divers modèles successifs qui ont pu être proposés au cours
de cette recherche. Outre cette aide à la mise au point du modèle mécanique, mes contributions ont
porté sur le passage de l’animation d’un cheveu unique et isolé à celui d’une chevelure complète,
en interaction avec elle-même et avec le corps du personnage. Pour cela, j’ai proposé des méthodes
efficaces pour la détection de collisions et mis en place des forces de réponse dont j’ai identifié les
paramètres en me référant à des expériences réelles. J’ai aussi proposé une ébauche de
paramétrisa-tion du comportement collectif des cheveux, qui m’a conduit à concevoir un habillage géométrique
des cheveux guide jetant un pont entre la représentation par mèches distinctes et l’interpolation d’une
chevelure continue.
1 Méthodologie suivie
La première approche pour concevoir un modèle dynamique de cheveu a consisté, très
naturel-lement, à utiliser les équations dynamiques de Kirchhoff et à les discrétiser, en espace et en temps,
grâce à un schéma de différences finies. Cependant, ce premier modèle s’est finalement avéré très
in-stable, notamment à cause de l’approximation faite sur les termes dérivés en espace. Ce constat nous
a conduit à proposer un second modèle dynamique de tige, basé sur la représentation en Super-Hélice
introduite au Chapitre 5 et sur les principes de la dynamique de Lagrange. Une première
implémen-tation en 2D de ce modèle nous a permis de vérifier que sa stabilité était satisfaisante. Cette méthode
a ensuite été étendue avec succès en 3D, pour donner le modèle deSuper-Hélice dynamique. Comme
nous le verrons, ce modèle garantit la simulation réaliste et stable d’un cheveu unique, tout en tolérant
de grands pas de temps.
Parallèlement à l’implémentation partielle et à l’évaluation des différents modèles dynamiques
conçus pour un cheveu unique, j’ai développé plusieurs algorithmes permettant de prendre en compte
les effets collectifs des cheveux, et ainsi de passer du modèle dynamique de cheveu unique à la
dyna-mique d’une chevelure complète. Ces algorithmes, gérant notamment les interactions entre cheveux,
les collisions entre les cheveux et le corps du personnage, ainsi que la génération de la géométrie
de la chevelure à partir d’un ensemble restreint de cheveux guide, ont été conçus et implémentés de
la manière la plus générale possible, de façon à pouvoir s’interfacer avec tout modèle mécanique de
cheveu en cours d’étude et prêt au test. J’ai ainsi développé au fur et à mesure une plate-forme
d’ani-mation dynamique, permettant de tester efficacement chaque modèle mécanique de cheveu en cours,
individuellement ou bien au sein d’une chevelure complète. Cette plate-forme de test nous a permis,
au cours de nos recherches, de détecter rapidement les forces et les faiblesses des différents modèles
mécaniques implémentés, ces derniers constituant la brique de base de la simulation d’une chevelure
complète.
Finalement, une part importante des mes travaux a consisté à valider le modèle physique de
che-veux dynamiques, à partir d’expériences réelles. Le modèle final de cheveu couplé aux interactions
a été validé grâce à une série d’expériences sur la mèche, et par des comparaisons avec des mèches
réelles. Poussant le réalisme physique plus loin que les méthodes précédentes, notre modèle est au
final capable de capturer précisément le comportement non-linéaire des cheveux en mouvement, ainsi
que la dynamique de cheveux bouclés. Comme l’illustrent nos résultats finaux, notre méthode permet
de reproduire les effets subtils se produisant au sein d’une chevelure en mouvement.
Le travail qui est présenté dans ce chapitre a fait l’objet d’une présentation et d’une publication à
la conférence ACM SIGGRAPH, en août 2006 [BAC
06].
FIG. 7.1:À gauche : une Super-Hélice. Au centre et à droite : simulation dynamique d’une chevelure ondulée, bouclée et lisse. Ces chevelures ont été animés en utilisant une centaine de cheveux guide, chaque cheveu guide étant une Super-Hélice composée de Nu 5éléments hélicoïdaux.
En Section 2, nous présentons brièvement le premier modèle dynamique de tige qui a été élaboré,
et nous montrons en quoi les problèmes de convergence que nous avons rencontrés en testant ce
modèle sont en fait inhérents à la méthode de discrétisation spatiale par des différences finies - appelée
dans la suite méthode nodale. Nous montrons ensuite, en Section 3, comment la modélisation des
tiges par des Super-Hélices permet de développer une méthode numérique stable, affranchie de toute
approximation numérique en espace. Enfin, en Section 4, nous exposons le modèle de chevelure
dynamique complète construit à partir du modèle mécanique de cheveu, avant de valider en Section 5
le modèle mécanique et le modèle d’interactions, grâce à une série de comparaisons visuelles entre
des cheveux réels et virtuels en mouvement.
Précisons que les principes et équations définissant le modèle dynamique de Super-Hélice, mis
au point par Basile Audoly, sont très complexes. J’ai tâché de les retranscrire ici de la manière la plus
simple possible, en donnant les éléments principaux à la compréhension pour un non-spécialiste de
la mécanique. Ainsi j’ai jugé inutile de mentionner tous les calculs (parfois très lourds) qui ont été
nécessaires notamment pour l’élaboration du modèle dynamique de Super-Hélice.
2 Échec de l’approche nodale
La première idée que nous avons eue pour implémenter les équations de Kirchhoff dynamiques a
consisté à utiliser un schéma de différences finies à la fois en espace en temps. Dans un tel modèle,
la tige est échantillonnée en N nœuds
s
PPI 1AAAN. Dans les équations de Kirchhoff (5.9) à (5.16),
données au Chapitre 5, toutes les dérivées en espace sontapprochéespar des différences finies. Cette
méthode mène à un système d’équations décrivant l’évolution temporelle des trois degrés de liberté
(torsion et courbures
κ
iPt
iI 012) en chaque nœuds
P.
FIG. 7.2:Instabilités de l’approche nodale : oscillations verticales d’une tige de Kirchhoff de 12 cm simulée par la méthode des différences finies proposée par Hou et al. [HKS98], (a) en l’absence de gravité (stable) et (b) en présence de gravité (divergence). (c) Tentative de simulation d’une chevelure complète animée grâce à quelques cheveux guide, animés comme des tiges de Kirchhoff discrétisées par différences finies ; étant donné que le modèle nodal de tige ne supporte pas les fortes courbures, il n’est pas possible avec ce modèle de planter les cheveux verticalement sur le crâne, ni de simuler des cheveux bouclés, ni encore d’imposer des mouvements rapides à la chevelure !...
Nous avons testé ce schéma numérique dans diverses configurations (voir Figures 7.2 et 7.3),
et nous avons constaté qu’il était fondamentalement instable
1, en particulier dans le cas de longs
cheveux qui, à cause de leur poids, présentent des courbures assez marquées près du cuir chevelu
(voir Figure 7.2). Ces instabilités numériques sont dues aux non-linéarités spatiales dans les
équa-tions de Kirchhoff, qui empêchent l’utilisation d’un schéma temporel entièrement implicite, et à la
présence de dérivées spatiales d’ordre très élevé dans les équations du mouvement, ce qui impose
des très fortes contraintes de stabilité sur les schémas d’intégration en temps explicites,∆t
.∆t
max1La simulation d’un cheveu raide de 10 cm soumis à la gravité était instable, même en poussant la discrétisation spatiale jusqu’à plusieurs centaines de nœuds, et pour des petits pas de temps de 10³
O
1
QN
2
[HKS98]. Ainsi, les équations de Kirchhoff mènent à des problèmes numériques raides dont
il est très difficile, voire impossible, de se défaireviales méthodes nodales de discrétisation.
FIG. 7.3:Simulation de la collision (par des forces de pénalité) entre des tiges de Kirchhoff, simulées par l’approche nodale, et une sphère, en l’absence de gravité. Lorsque les déformations des tiges ne sont pas trop importantes (comme c’est le cas ici), cette méthode fonctionne de manière stable. Cependant, dès qu’on sou-haite simuler de plus grandes déformations en courbures et en torsion, d’importantes instabilités numériques apparaissent (voir Figure 7.2, à droite).
Les problèmes raides dans les méthodes nodales ont déjà fait l’objet d’analyses approfondies par
Baraff et Witkin [BW92] qui recommandent l’utilisation demodèles lagrangiens déformables(parfois
appelés “modèles globaux”, par opposition aux modèles locaux ou nodaux), comme nous l’avons vu
au Chapitre 2. De tels modèles sont construits tout d’abord en choisissant avec soin les degrés de
liberté que l’on cherche à animer, puis en considérant ces degrés de liberté comme les coordonnées
généralisées dans les équations dynamiques de Lagrange. C’est l’approche que nous utilisons ici,
dans le même esprit que [WW90, BW92, QT96].
3 Super-Hélices dynamiques
Après une dizaine de mois passés à implémenter et à tester le modèle dynamique de tige par
dif-férences finies, nous avons compris que les instabilités numériques rencontrées étaient causées par
les approximations effectuées sur les termes dérivés en espace des équations : le problème était donc
inhérent à la méthode. Nous avons ainsi renoncé à discrétiser les équations du modèle continu de
Kirchhoff, et avons choisi à la place de considérer la dynamique d’un nouveau modèle, déjà discret
en espace : le modèle de Super-Hélice. Ce modèle a déjà été introduit au Chapitre 5 et exploité avec
succès en statique, au chapitre précédent. Pour l’utiliser en animation, toute la difficulté a consisté
à écrire les équations dynamiques de ce nouveau système mécanique à partir des équations de
Kir-chhoff. Ce difficile travail a pu être réalisé grâce aux précieuses compétences de Basile Audoly en
modélisation mécanique.
Avant de se lancer dans le cas dynamique 3D, un premier modèle en 2D a été conçu et testé,
afin de vérifier la viabilité du modèle de Super-Hélice en dynamique (dans le cas 2D, il faudrait
en l’occurrence parler d’un modèle de ’Super-Cercle’). Les résultats encourageants que nous avons
obtenus avec ce premier modèle nous ont conduit rapidement à passer à l’approche 3D. C’est cette
dernière approche que nous introduisons ici.
Étant donnée la grande complexité du modèle dynamique de Super-Hélice, nous proposons ici
d’en présenter seulement une vue d’ensemble, afin d’aider le lecteur à visualiser rapidement le modèle
et à comprendre les grandes lignes de la méthode. Les détails des calculs, jugés moins utiles à la
compréhension globale de l’approche, ne sont pas donnés par souci de clarté dans l’exposition de la
méthode.
FIG. 7.4:À gauche : géométrie d’une Super-Hélice. À droite : quatre Super-Hélices caractérisées par des courbures et torsion naturelles différentes, et animées par le même mouvement d’oscillation horizontale : che-veu a) raide, b) ondulé, c) bouclé, et d) très bouclé. Dans cet exemple, chaque cheche-veu est simulé à l’aide de 10 éléments hélicoïdaux, chaque élément étant représenté d’une couleur différente.
3.1 Paramètres indépendants
Au Chapitre 5, nous avons introduit la Super-Hélice comme un modèle de tige de Kirchhoff ayant
un nombre fini de degrés de liberté, les
κ
iQQ@1AANB
iI 012
, qui représentent les coordonnées généralisées de
notre système. Le modèle dynamique que nous construisons à partir de cette représentation a le grand
avantage d’être capable de prendre en compte une discrétisation spatiale de la tige arbitrairement
grossière (pourN
´1 petit), ou fine (Ngrand). En réglant ce paramètreN
´1 pendant la simulation,
on pourra ainsi choisir le meilleur compromis entre précision et efficacité, en fonction de la complexité
du mouvement de la chevelure, ou de la puissance de calcul disponible. De plus, comme nous l’avons
déjà mentionné à la fin du Chapitre 5, les contraintes de la tige sont déjà intégrées à travers cette
paramétrisation en courbures et torsion. Comme nous le verrons, ce choix permettra de garantir une
simulation très stable du modèle pour n’importe quelle valeur de N, et autorisera les grands pas de
temps.
3.2 Équations dynamiques pour une Super-Hélice
Étant donné un corps déformable dont la configuration dérive de coordonnées généraliséesq
t
,
la mécanique de Lagrange fournit, comme expliqué en Annexe C, une méthode systématique pour
formuler les équations du mouvement de ce corps, ¨q
a
q
q˙
t
. Dans notre cas, les équations de
Lagrange nous donnent 3Néquations scalaires qui s’écrivent :
d
dt
y∂T
∂κ˙
iQ z∂T
∂κ
iQ∂U
∂κ
iQ∂D
∂κ˙
iQ $ L 0J
iQs
q
t
F
s
t
ds (7.1)
où T
κκκ
κκκ˙
t
est l’énergie cinétique de la Super-Hélice, U
κκκ
t
son énergie interne élastique, et
D
κκκ
κκκ˙
t
sa dissipation interne. Les expressions de chacun de ces termes sont données plus bas.
Le membre de droite de l’équation (7.1) est la force généralisée f
iQqui dérive de la densité linéique
F
s
t
de la force physique appliquée sur la tige (voir Annexe C pour une définition de la force
géné-ralisée), etJ
iQdénote la matrice Jacobienne der,J
iQ∂r
SHs
κκκ
t
Q∂κ
iQ.
Nous prenons en compte trois types de forces extérieures : le poids du cheveu, la traînée visqueuse
de l’air ambiant (supposée constante le long du cheveu) avec le coefficient de frottement ν, et les
forces de contactF
cavec les autres cheveux et le corps du personnage :
F
s
t
ρSg
ν∂r
SHs
κκκ
t
∂t
F
cLe calcul de la résultanteF
cdes forces de contact est expliqué à la Section 4.2.
Les trois énergies dans les équations du mouvement (7.1) qui sont importantes pour une tige
élastique sont :
T
κκκ
κκκ˙
t
1
2
$ L 0ρS
ydr
SHs
κκκ
t
dt
z 2ds (7.2b)
U
κκκ
t
1
2
$ L 0 2∑
iI 0EI
iκ
SH is
κκκ
κ
n is
2ds (7.2c)
D
κκκ
κκκ˙
t
1
2
$ L 0µ∑
2 iI 0EI
i ydκ
SH is
κκκ
dt
z 2. (7.2d)
Remarquons que l’énergie cinétiqueT s’exprime de manière classique en fonction de la vitesse de la
tige, dr
Qdt. L’énergie élastiqueUdans l’équation (7.2c) se déduit du calcul de l’énergie stockée dans
la tige, en fonction de la loi de comportement du matériau (5.13) donnée au Chapitre 5. L’énergie de
dissipationD que nous proposons se base sur un modèle heuristique simple, qui permet de capturer
les effets visco-élastiques dans les cheveux.
Tous les termes nécessaires à l’équation (7.1) ont été donnés dans les équations (7.2). En
combi-nant toutes ces équations, on arrive à des équations explicites du mouvement exprimées en fonction
des coordonnées généraliséesκκκ
t
:
µ<