• Aucun résultat trouvé

Rendu de cheveux

Dans le document Simulation de chevelures virtuelles (Page 56-66)

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ω

i

la direction d’illumination

etω

r

la 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 θ

i

etθ

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 φ

i

etφ

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

d

k

s

cos

p

θ

i

θ

r

cos

θ

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φ

i

ni 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

dir

qui s’exprime ainsi :

f

dir

1

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

exposés au chapitre précédent ont montré que la simulation

gra-phique des chevelures est un problème difficile. Pour l’aborder sansa priori, et

être capable d’innover, il est important d’avoir une vision synthétique des

diffé-rentes méthodes permettant de simuler des systèmes physiques, et en particulier

des modèles déformables. C’est l’objet de ce chapitre.

Cet état de l’art synthétique s’appuie sur plusieurs ouvrages de référence en

mécanique [LL76] et en méthodes numériques [AP88,Lam91], ainsi que sur des états de l’art

présen-tés en informatique graphique dans différentes thèses récentes [Deb00,Noc01,Len04], habilitations à

diriger des recherches [Mes02] ou encore sur les articles de recherche de Baraff [BW92,Bar96]. Nous

renvoyons donc le lecteur vers l’ensemble de ces références pour plus de détails sur le sujet. Pour un

état de l’art complet et récent sur l’animation de corps déformables, le lecteur pourra également se

référer à [NMK

05]. Divers états de l’art récents portent de manière spécifique sur les méthodes de

gestion des collisions entre objets animés [TKH

05,TMH

05]. Nous n’aborderons que très

succinc-tement ce problème ici, en essayant de nous limiter aux approches susceptibles de nous intéresser

dans le cas précis de l’animation de cheveux.

1 Problématiques

Lorsque l’on souhaite simuler le comportement statique (recherche des positions d’équilibre),

ou encoredynamique d’un objet passif, la modélisation physique est d’un grand secours puisqu’elle

permet, à partir des propriétés physiques de l’objet considéré (masse, module d’élasticité, etc.) et

d’un certain nombre de conditions initiales, de prédire de manière réaliste les états d’équilibre ou

le mouvement du système. Nous considérerons dans la suite le cas le plus général d’un système en

mouvement.

Les lois de la mécanique fournissent les équations du mouvement d’un système purement

mé-canique (des rappels sur la mémé-canique de Newton et sur la mémé-canique de Lagrange sont donnés en

Dans le document Simulation de chevelures virtuelles (Page 56-66)