FIG. 1.36:Effets de la lumière sur des cheveux réels de couleurs variées (c
J. Gray).
Pour rendre une chevelure humaine de manière réaliste, il est nécessaire de prendre en compte à la
fois les propriétés optiques de chaque fibre capillaire, que nous appelleronspropriétés locales
d’illu-mination, ainsi que les interactions lumineuses se produisant entre les cheveux, appelées propriétés
globales.
Avant toute chose, il faut convenir d’une représentation géométrique appropriée de la chevelure,
sur laquelle on puisse ensuite s’appuyer pour en générer le rendu. La chevelure peut être représentée
soit de manièreexplicite, soit de manièreimplicite. Nous décrivons ensuite les propriétés de dispersion
de la lumière caractéristiques d’une fibre capillaire. Cette section passe en revue les différents modèles
qui ont été proposés pour rendre compte fidèlement de ces propriétés optiques locales qui traduisent la
nature des reflets de la chevelure. Les propriétés globales concernent quant-à-elles la manière dont les
cheveux se projettent mutuellement de l’ombre ; ce phénomène d’auto-ombrage est essentiel puisqu’il
contribue de façon primordiale à l’impression de volume d’une chevelure.
Représentation des cheveux pour le rendu
Les choix possibles pour un algorithme de rendu de cheveux dépendent largement de la
repré-sentation sous-jacente utilisée pour modéliser la géométrie des cheveux. Par exemple, les modèles
explicites font appel à des algorithmes de rendu prenant en entrée des primitives géométriques telles
que des segments ou des triangles, tandis que les modèles volumiques ne peuvent être rendus quevia
des algorithmes sachant gérer les représentations implicites.
a) Représentation explicite
Lorsque l’on utilise une représentation explicite pour les cheveux, cela signifie que chaque
che-veu doit être tracé de manière individuelle. Un cheche-veu individuel se représente de manière naturelle
par un cylindre incurvé. Un des premiers travaux sur le rendu de cheveux, menés par Watanabe et
Suenaga [WS92] propose une représentation des cheveux par des prismes trigonaux ; dans cette
re-présentation, chaque mèche de cheveux est vue comme une série de prismes reliés entre eux par trois
faces. En attribuant une unique couleur à chaque prisme, cette méthode suppose que la variation de
couleur d’un cheveu dans son épaisseur est négligeable. D’autres approches représentent les cheveux
par une bande continue de triangles, chaque triangle étant toujours orienté face à la caméra. Neulander
et van de Panne [NdP98] ont présenté une technique qui discrétise de manière adaptative la géométrie
incurvée des cheveux et produit un ensemble de polygones dont le nombre et les dimensions varient
en fonction de la distance à la caméra, de la courbure géométrique de cheveux, etc.
Lors du rendu d’une représentation explicite, des problèmes d’aliasage, causés par la nature
géo-métrique très particulière des cheveux (un cheveu est extrêmement fin - 0.1 mm de diamètre en
moyenne), peuvent survenir. En effet, dans des conditions normales de visualisation, l’épaisseur d’un
cheveu projeté sur l’écran est beaucoup plus petite que la taille d’un pixel. Cette propriété est la
cause d’importants problèmes de sous-échantillonnage dans les algorithmes de rendu de géométrie
polygonale. Tous les algorithmes de rendu basés sur une géométrie explicite déterminent la
cou-leur d’un pixel (ou la profondeur) en fonction d’un nombre limité d’échantillons discrets. Le
sous-échantillonnage crée des changements brutaux de couleurs, ou encore des arêtes bruitées autour de la
chevelure. En augmentant le nombre de primitives utilisées, on parvient à réduire le problème, mais
avec un taux faible de convergence [Mit96], et par conséquent, au prix d’algorithmes lents.
LeBlancet al.[LTT91] ont résolu le problème en effectuant un mélange approprié des couleurs
des pixels, à l’aide de techniques de “blender buffer”. Dans cette méthode, chaque cheveu est dessiné
comme une ligne brisée, et la couleur ombrée est mélangée à un pixel buffer. Puis étant donné qu’un
mélange à base de transparence alpha est utilisé, l’ordre de tracer est soigneusement respecté, en
af-fichant d’abord les polygones loin de la caméra. Kim et Neumann [KN02] ont également utilisé une
approximation du tri par visibilité afin de rendre des cheveux avec une valeur de transparence.
b) Représentation implicite
Les textures volumiques (outexels) [KK89, Ney98] évitent le problème de l’aliasage en utilisant
des fonctions d’ombrage pré-filtrées. On considère comme primitive élémentaire une cellule
volu-mique dont différentes résolutions peuvent facilement être pré-calculées pour une utilisation
multi-échelle ensuite. Le coût du lancer de rayon nécessaire pour rendre ces volumes est relativement
rai-sonnable pour des cheveux courts ou pour de la fourrure, mais peut devenir très lourd dans le cas de
longs cheveux. De plus, si les cheveux sont animés, de tels volumes doivent être mis à jour et donc
recalculés à chaque pas de temps, ce qui amenuise nettement les avantages du pré-filtrage initial.
La méthode de rendu appliquée sur le modèle de mèches à base de cylindres généralisés de Yanget
al.[YXYW00] exploite la géométrie implicite de la chevelure. Chaque groupe de cheveu est tout
d’abord approché par une enveloppe englobante polygonale. Lorsqu’un rayon frappe cette surface
polygonale, les fonctions de densité prédéfinies sont utilisées pour calculer la densité accumulée. En
approximant les détails à haute fréquence par des fonctions de densité, la méthode génère ainsi des
images de chevelures antialiasées.
Propriétés de dispersion de la lumière dans les cheveux
La beauté d’une chevelure est essentiellement liée à sa brillance si particulière, causée par des
reflets caractéristiques émis par chaque fibre individuelle sous l’effet de la lumière. Pour modéliser
finement l’apparence d’une chevelure, il est ainsi indispensable de rendre compte de la manière dont
chaque fibre capillaire renvoie ou absorbe la lumière incidente. Un tel modèle représente, pour le
rendu de cheveux, ce que les modèles de réflexion de surface (ou modèles locaux) sont au rendu
tra-ditionnel de surfaces.
a) Propriétés optiques du cheveu
La structure interne du cheveu a déjà été présentée en Section 1.3. Une fibre capillaire est
consti-tuée de protéines amorphes qui se comportent comme un milieu transparent, et dont l’indice de
réfrac-tion estη
1
55 [Rob02, SGF77]. Le cortex et le canal médullaire contiennent, comme nous l’avons
vu précédemment, des pigments qui absorbent la lumière, et ce de façon dépendante de la longueur
d’onde. Ce sont ces pigments qui donnent leur couleur aux cheveux.
b) Notations et radiométrie
La Figure 1.37 indique les notations choisies pour étudier l’optique géométrique d’une fibre
capil-laire. On appelleplan normalle plan perpendiculaire à la fibre. On noteω
ila direction d’illumination
etω
rla direction dans laquelle on calcule (ou mesure) la lumière réfléchie. Ces deux directions sont
orientées du cœur de la fibre vers l’extérieur, et sont repérées à l’aide de coordonnées sphériques.
Leurs angles (algébriques) par rapport au plan normal sont respectivement notés θ
ietθ
r, et ce de
sorte qu’une valeur de 0 degré représente un vecteur perpendiculaire à l’axe du cheveu. Les angles
(algébriques) de rotation autour de l’axe principal du cheveu sont respectivement notés φ
ietφ
r, et
l’angle de rotation relatif φ
iφ
r- suffisant pour caractériser la dispersion de la lumière dans le cas
où l’on considère des fibres de section circulaire - est noté∆φ.
FIG. 1.37:Notations pour l’optique géométrique dans le cheveu [MJC 03].
Les principes bien connus de la réflexion sur une surface ne s’appliquent pas directement à la
fibre, celle-ci étant plutôt traitée comme un objet linéique, à une seule dimension.
Nous ne détaillerons pas ici la formulation de la fonction de dispersion pour une fibre (que le
lecteur intéressé pourra trouver dans notre état de l’art plus complet mentionné au début de ce
cha-pitre [WBK
06]), mais nous nous attacherons surtout à reporter les principales mesures effectuées
par les scientifiques concernant la dispersion de la lumière par un cheveu, et à décrire les précédents
modèles développés en informatique graphique pour simuler ce phénomène.
c) Mesures de la dispersion de la lumière par un cheveu
Dans la littérature traitant de cosmétique, on peut trouver des résultats concernant la mesure, dans
le plan incident, du phénomène de dispersion de la lumière à travers un cheveu. Stammet al.[SGF77]
ont mesuré la réflexion de la lumière issue d’une bande de fibres parallèles. Ils ont remarqué plusieurs
différences notables par rapport à ce qui était prédit par la théorie sur la dispersion à travers un objet
cylindrique : au lieu d’observer un unique pic spéculaire, dans la direction symétrique du faisceau
incident, ils ont pu déceler la présence de deux pics spéculaires de part et d’autre de la direction
spéculaire théorique, et l’apparition d’un pic spéculaire très net pour un faisceau incident rasant.
Les auteurs ont expliqué la présence de ces deux pics spéculaires par le fait que la surface de la
fibre capillaire n’est pas lisse, mais recouverte d’écailles qui dévient les rayons lumineux : un des
pics observés correspond alors à la réflexion directe des rayons incidents, tandis que le second pic
correspond à la réflexion interne des rayons incidents, comme nous l’avons déjà mis en évidence sur
la Figure 1.9.
Marschner et al.[MJC
03] ont fait part de mesures sur des fibres individuelles dans des
confi-gurations plus générales. En plus de mesures sur le plan incident, ils ont effectué des mesures sur le
plan normal. Ces dernières décrivent précisément les pics déjà observés par Bustard et Smith [BS91],
et expliquent notamment comments ces pics évoluent lorsque l’on fait tourner un cheveu autour de
son axe. Les auteurs évoquent ces pics sous le terme de “reflets” et présentent une simulation de
dis-persion par un cylindre elliptique qui prédit l’évolution de ces reflets. Des mesures supplémentaires
montrent l’évolution des pics avec l’angle d’incidence, et ont permis ainsi de compléter les
connais-sances acquises quant à la dispersion de la lumière à travers les fibres capillaires.
d) Modèles d’illumination locale
FIG. 1.38:Comparaison entre le modèle de Kajiya et Kay (à gauche), le modèle de Marschner (au milieu), et une chevelure réelle (à droite). Les reflets primaire et secondaire sont nettement visibles sur la photographie de droite (Figure tirée de [MJC 03]).
Le premier et le plus répandu des modèles de dispersion de la lumière par un cheveu est celui de
Kajiya et Kay, à l’origine conçu pour simuler le rendu de fourrure [KK89]. Ce modèle se caractérise
par la somme de deux composantes, une composante diffuse et une composante spéculaire :
S
θ
iφ
iθ
rφ
r
k
dk
scos
pθ
iθ
rcos
θ
i
Kajiya et Kay ont calculé la composante diffuse en intégrant la radiance réfléchie à travers un
cylindre opaque et diffus. Ils justifient leur composante spéculaire à l’aide de l’argument selon lequel
la réflexion spéculaire idéale sur un cylindre parfait est comprise dans un cône, et donc la réflexion
sur une fibre non idéale se fait dans un lobe enveloppant ce cône. On peut remarquer que ni l’intensité
du pic ni l’épaisseur du lobe spéculaire ne sont dépendants deφ
ini de∆φ(dépendance seulement en
l’angle relatif∆θ
θ
iθ
r). Banks [Ban94] a présenté quelques années plus tard le même modèle,
fondé sur des explications géométriques simplifiées.
Dans un autre article sur le rendu de fourrure, Goldman [Gol97] a proposé de raffiner le modèle
en introduisant une dépendance azimutale à la dispersion de la lumière. Dans ce nouveau modèle, les
termes diffus et spéculaires sont multipliés par un facteur f
dirqui s’exprime ainsi :
f
dir1
acos∆φ
Kim [Kim02] a proposé un modèle alternatif pour la dépendance en ∆φ, qui tient compte de la
réflexion et de la transmission à travers deux lobes en cosinus.
Marschneret al.[MJC
03] ont récemment proposé le modèle le plus complet et le plus physique
pour l’illumination locale d’un cheveu. Leur modèle améliore l’approche de Kajiya et Kay sur deux
points essentiels : d’une part, il prédit la variation de la réflexion des rayons lumineux selon la
ro-tation φ autour de l’axe de la fibre, en prenant en compte la section elliptique du cheveu ; d’autre
part, il modélise l’effet des écailles du cheveu sur la réflexion spéculaire et interne de la lumière, et
obtient donc les deux pics spéculaires caractérisés auparavant par les mesures réelles sur le cheveu
(voir Figure 1.38).
Auto-ombrage
Le phénomène d’ombres portées ou auto-ombrage contribue très nettement à conférer une
appa-rence de volumeà la chevelure (voir Figure 1.39). Dans le cas d’une chevelure complète, composée
d’une centaine de milliers de fibres très fines et translucides, ce phénomène est d’autant plus difficile
à reproduire de manière à la fois convaincante et efficace.
FIG. 1.39:Importance de l’auto-ombrage sur l’apparence d’une chevelure. Comparaison entre des cheveux auto-ombrés (à gauche), et sans ombres portées (à droite) [LV00] (c
Pixar Animation Studios).
En général, on peut distinguer deux types d’approches pour projeter de l’ombre dans des objets
volumétriques : lescartes d’ombre 2D, et le lancer de rayon à travers une grille dedensité volumique.
a) Cartes d’ombre 2D (2D shadow maps)
Dans les algorithmes traditionnels utilisant des cartes de profondeur, la scène est rendue depuis
le point de vue de la lumière, et la profondeur de chaque surface visible est stockée dans une carte
d’ombre 2D. Un point donné sera dans l’ombre si la distance de ce point à sa projection sur la carte
d’ombre placée à la source lumineuse est supérieure à la distance stockée au préalable à cet endroit
dans la carte (correspondant à la distance entre la surface visible de la scène et ce pixel de la carte).
Cet algorithme n’est pas adapté au rendu d’objets semi-transparents tels que les cheveux, puisqu’il
ne permet de stocker qu’une seule profondeur par pixel de la carte. Pour gérer l’auto-ombrage
d’ob-jets translucides, Lokovic et Veach [LV00] ont proposé une extension aux cartes d’ombre
tradition-nelles : lescartes profondes d’ombre (deep shadow maps). Pour chaque pixel de la carte, l’algorithme
stocke une fonction detransmittance(également appeléefonction de visibilité), qui donne la
propor-tion de lumière arrivant à chaque profondeurzéchantillonnée le long d’un rayon lancé depuis un pixel
de la carte.
Kim et al. ont proposé une manière pratique d’implémenter cette approche, qu’ils ont appelée
cartes d’opacité (opacity shadow maps)[KN01], et qu’ils ont appliquée au cas du rendu de cheveux
(voir Figure 1.41). Ward et al.[WLL
03] ont combiné cette approche avec une représentation des
cheveux par différents niveaux de détail, visant ainsi à optimiser l’animation et le rendu de cheveux,
sans toutefois obtenir des simulations complètes (animation etrendu) interactives. La technique de
cartes d’opacité a également été exploitée par d’autres auteurs qui ont tiré parti des nouvelles
fonc-tionnalités des cartes graphiques pour accélérer encore la méthode, et obtenir cette fois-ci un rendu
de cheveux interactif voire temps-réel [MKBR04, KHS04].
b) Rendu volumique
Le rendu volumique constitue une approche classique pour visualiser des ensembles de
don-nées provenant de grilles 3D [KH84]. Pour rendre des objets semi-transparents avec des ombres
portées, une première étape consiste généralement à lancer des rayons depuis la source de lumière
vers le volume considéré, puis à stocker la fonction d’atténuation de la lumière (dans des voxels par
1
0 z
τ
FIG. 1.40:Algorithme des cartes profondes d’ombre (Deep Shadow Maps) [LV00]. En haut : rayon de lumière issu d’une caméra placée à la source de lumière, qui passe au travers d’un pixel de la carte d’ombre, et vient illuminer la scène. En bas : la fonctionτ de transmittance (ou de visibilité) correspondante, stockée dans chaque pixel de la carte d’ombre comme une fonction linéaire par morceaux.
FIG. 1.41:Algorithme des cartes d’opacité pour l’auto-ombrage (Opacity Shadow Maps) [KN01]. Dans cette technique, le volume de la chevelure est partitionné de manière uniforme, perpendiculairement à la direction de la lumière, en un ensemble de cartes 2D qui stockent les valeurs alpha (à gauche). La chevelure ombrée résultante (à droite).
exemple). Ensuite, le rendu final est effectué par tracer de rayons depuis la caméra. De telles
mé-thodes peuvent rendre avec précision des objets volumétriques de type nuage ou fumée [KH84], ou
même des géométries fines telles que les cheveux [KK89]. Les méthodes à base de tracer de rayons
génèrent souvent des résultats de bonne qualité, mais au prix de coûts prohibitifs en termes de
sto-ckage mémoire et de temps de calcul. Plus récemment, des approches dites de “splatting” ont été
développées enfin d’accélérer l’ombrage et le rendu de données volumétriques [NM01, ZC03]. Le
“billboard splatting”, correspondant à une multi-projection de textures, a pu être appliqué avec succès
au rendu de nuages [DKY
00]. Dans le cas des cheveux, ce genre d’approche s’avère effectivement
efficace [BCN03], mais ne semble pas vraiment adapté au rendu des détails très fins caractéristiques
d’une chevelure (voir Figure 1.31, à droite).
4 Bilan
Cet état de l’art a présenté diverses études portant sur les cheveux et sur leur modélisation. Nous
avons tout d’abord présenté les propriétés physiques du cheveu, dont la connaissance est essentielle si
l’on veut par la suite être capable de simuler de manière fidèle le comportement mécanique ou optique
des cheveux. Dans un second temps, nous nous sommes attachés à exposer brièvement les principes
et objectifs spécifiques de la science capillaire et de la recherche en cosmétologie, puisque cette thèse
a été en grande partie menée en partenariat avec des industriels de L’Oréal. Enfin, nous avons passé
en revue les différents modèles numériques conçus dans le domaine de l’informatique graphique afin
de modéliser, animer et rendre des cheveux. Il ressort de cette étude que le domaine du rendu est
à ce jour le plus avancé, car il existe déjà un certain nombre de modèles déjà physiquement très
réalistes, ainsi que de nombreux travaux permettant un rendu interactif de très bonne qualité pour des
chevelures complètes. Par contre, la modélisation de coiffures, et surtout l’animation de chevelures,
posent encore de nombreux problèmes : étant donnée la complexité des phénomènes mécaniques en
jeu dans une chevelure statique ou en mouvement, le réalisme physique et l’efficacité des simulations
sont encore loin d’être atteints.
FIG. 1.42:Rendu en temps-réel de longs cheveux en mouvement, en utilisant les nouvelles fonctionnalités des cartes graphiques [ZFWH04]. Si l’apparence de la chevelure est magnifique, le mouvement (pré-calculé) des cheveux reste relativement simple, et soumis à de faibles accélérations (c
Modèles pour la simulation physique
ES TRAVAUX