• Aucun résultat trouvé

º et  Ü ’ » º siÄ _ Å

a la même direction que Ã

ƒ , sinon ces bornes sont

ß jú Ü – » º etùø jû å ’ » º . Nous introduisonsüýxjúþ å –ÿ Ü þ, et obtenons alors : µ iÕÔç‹ Æ j ìí‹!ìNéæ”sin”üý ˜à’•” – üý ˜ cos”üý ˜×˜ ìNé µ iÕÔç‹ Æ j Ç  ”sin”üý ˜à’•” – üý ˜ cos”üý ˜×˜ (4.1) 2.2 Illumination spéculaire

L’illumination spéculaire depuis le point de vue est :

µ iÕÔç‹ Ç j Ö …ˆ‡Š‰ mn‹ ”'¶ØŽ  ˜ h 1IÙ ¾ÛڛÝàßÞá Žx·àâ …½‡Š‰ Ö …½‡Š‰ m׋ k½Žx·àâ …ˆ‡Š‰ j Ö iÕÔç‹ ‡ hæÆfnm ”'¶ØŽ  ˜ h 1IÙ ¾ÛڛÝàßÞá Žä”'¶ØŽ Å ˜1IÙ ¾ÛÚåæÝàßÞá Žx·àâ Ö iÕÔ‹ ‡ h‘ÆSf×m ”'¶ØŽ Å ˜1IÙ ¾ÛÚå‘ÝàßÞá Žx·àâ avec le demi-vecteur  j å ô Ü å ô Ü et^ l’exposant spéculaire. Posons  … ,èk ,ìêk et å

défini comme pour

Ä et Å . Alors : µ iÕÔ‹ Ç j Öïî ð î½ñ‘î½ò ì h k cosh ”!Ë–ž ˜eìNé cos”!Ë–ž å ˜n·œ Ö î½ó¹ô õö îˆñœîˆó¹÷ õö ì é cos”!Ë–ž å ˜n·œ

Il est connu que cosh

” œ˜ est similaire à ÷ö

‰

ö

pour ^ grand (ce qui est la cas ici). De plus, la densité de la fonction est concentrée sur j n (l’écart type vaut k

À

^ , et^ est généralement plus grand que 100), alors nous avons cosh

” – ß ˜½” ‘˜ Í cosh ” – ß ˜½” ß ˜. Finalement nous obtenons : µ iÕÔ‹ Ç Í ”'ì h k ìNé cos”! –ž å ˜  îð îˆñ‘î½ò ÷ Ù î§÷†î á ö ·œ ˜ìNé Puisque Ö ÷  ÷ ð ö Ù  á ö j À

 , l’intégrale précédente devient  ºT» h si 

"!



ß$#

ùø&% (ce qui est toujours le cas). Donc :

µ iÕÔç‹ Ç Í ø º ì h k cos”! –ž å ˜  ºT» h (4.2) 2.3 Opacité

L’opacité est la proportion du rectangle de l’aiguille apparent qui se projette dans le pixel. Si l’aiguille est totalement couverte par le pixel alors :

ƒj²(' ¸Ûƒ iÕÔ‹ j º f Ú Ç*) ‹ +-,.  (4.3) oùâ …ˆ‡ã‰

représente la surface de la section du rayon conique à la distance de la primitive. L’illumi-nation diffuse et spéculaire valent donc c×ÆPjŒƒj²' ¸Ûƒàµ›Æ etc!Ç jŒƒj²' ¸Ûƒàµ‘Ç .

FIG. 4.5 – Notre shader de cylindre permet de représenter une forêt de sapins dont les aiguilles sont considérées comme cylindriques sans avoir à les trianguler ou à les échantillonner.

3 Shader analytique d’un cône d’aiguilles

Comme nous l’avons vu à la section 1.3.2, nous considérons à cette échelle qu’un cône d’ai-guilles est une surface continue semi-opaque d’opacité Ÿ où chaque point de la surface a une réflexion identique à celle d’un cylindre. Nous devons donc intégrer l’illumination d’un cylindre sur un cône d’ouverture± pour tous les axes Ã

ƒ0/ d’aiguilles valides. Dans le système de coordon-nées polaires associé au cône nous avonsÄ

j”1 Ü# ± Ü ˜, où ± Ü

est l’angle entreÄ

et l’axe du cône. De même nous avonsÅ

j”1 å2# ± å ˜. 3.1 Illumination diffuse

L’illumination diffuse est donnée par :

c i43Thàm Æ j Ÿ  / ó ôÑõö / ñ / ó1÷ õö ²SŽìNéçµ iÕÔ‹ Æ ” à ƒ0/1˜ j ²SŽŸ 5  / ó¹ô õö / ñ / ój÷Ûõö ìí‹,ì é ”sin”üý ˜à’•” – üý ˜ cos”üý ˜×˜

²!ìNé est la longueur apparente d’une aiguille. Cette formule n’est pas intégrable analytiquement. Nous approchons alorsìí‹,ìNéj”sin”üý ˜ï’ ”ؖ üý ˜ cos”üý ˜×˜ en utilisant la fonction2

6

j`ìí‹!ìNé1Ž7

k ’ cos”üý ˜  8

” ’•” –9à˜ cos”üý ˜×˜

qui a la même valeur et la même dérivée enn , »

º

et . De plus, l’erreur maximale entre les deux fonctions est plus petite que 1%3.

2

Nous avons trouvé les différentes formules approximantes par tâtonnement, en cherchant des formes intégrables et en contrôlant les différences sous Maple.

3 L’approximation de: par;=< ð?> cos@BADCFE ö G ðHIKJðJ

3. SHADER ANALYTIQUE D’UN CÔNE D’AIGUILLES 87 Si cos”üý ˜Çj ” Ä … Ž Å … ˜ ”lþ Ä … þŽŠþ Å … þ˜ j ” Ä Ž Å ˜½– 觋,è é ìދ,ìNé alors  6 jë” Ä Ž Å ’ ìí‹eìT鏖 è‹eèêé1˜jŽä” ’ ”ؖLà˜T” Ä Ž Å – 觋,èêé1˜çìí‹,ìNé1˜

FIG. 4.6 – À gauche un exemple de la courbe: , pourM2NPORQFSKTVUWX,YZN[O\T-S&T]U^FX et_`NaQbU^ . Cette courbe est plutôt lisse malgré l’aspect complexe de ses facteurs. À droite : la FFT de cette courbe. Notez que l’énergie est clairement concentrée dans les fréquence 0, 1 et 2, la motivation d’approcher: avec une combinaison linéaire de 1, cosOced`cbfgX, cosOhWOcid`cbjXX est donc justifiée. NB : les valeurs à droite sont dûes à la symétrie de la FFT.

Si nous traçons cette fonction avec Maple pour plusieurs valeurs des paramètresÄ

,Å

et ± , il apparaît que la courbe est très lisse (cf. figure 4.6 à gauche) et ressemble à une combinaison linéaire de k , cos”1ý–k1ç[˜ et cos”æ”1–k11š†˜×˜. L’évaluation de la FFT sur des courbes discrétisées montre qu’il n’y a pratiquement pas d’énergie en dehors des fréquences 0, 1 et 2 (cf. figure 4.6 à droite). Nous essayons donc d’approcher la courbe

6

en utilisant des positions et des valeurs des extrema. Le premier facteur est responsable d’un maximum de variation de 6

et est facile à calculer. De ce fait, nous approchons la courbe 6

par ”

Ä

Ž

Å

˜ ’ ìí‹,ì é – 觋,è é dont les extrema correspondent aux mêmes valeurs de1 que

6

.

Le terme觋,èê醖bìí‹!ìNé est égal à cos”mlŸ

Ä

’LlŸ

Å

˜ avec

Ä

l’angle entre les vecteurs à ƒ etÄ

, et

Å

l’angle entre les vecteurs à ƒ etÅ

. Ces angles varient peu entre leur minimum et leur maximum si le vecteur Ã

ƒ tourne autour du cône, nous représentons donc les variations de

Ä par la formeŸ Ü ’ n Ü cos”1ý–o1 Ü ˜ avecŸ Ü j max”!± Ü# ±[˜,n Ü j min”!± Ü#

±[˜. Nous faisons de même pour

Å . Si nous développons Ä ’ Å

avec cette approximation nous obtenons l’expression :

Ÿqp’ n p cos”1ý–o1Dpœ˜ avec Ÿqp j Ÿ Ü ’ Ÿ å n º p j n º Ü ’ n º å ’9 n Ü n å cos”1 Ü –1 å ˜ cos”1Dp›˜ j ” n Ü cos”1 Ü ˜à’ n å cos”1 å ˜×˜ n p ì-r,^ ”1Dp›˜ j ” n Ü sin”1 Ü ˜à’ n å sin”1 å ˜×˜ n p

simple d’utiliser une puissance de 1.5, 2 ou 1 (avec des erreurs respectives de 4%, 7%, 18% à la place de log E

log@

ö

E

), pour résoudre l’intégrale analytiquement.

FIG. 4.7 – Les deux types d’aspects de la courbe cosOtsu2vxw0uzy cosOcdxcFu{XX, dépendant de ce ques|u2v}w0uzy

cosOced`cFu{X croise; (à droite) ou non (à gauche).

Notre but étant d’approcher6

, nous cherchons les extrema de 6

Í ” Ä Ž Å ˜1– cos”mlŸ Ä ’~lŸ Å ˜. Ils correspondent aux extrema de

Ä

’lŸ

Å

, soit à la valeur pour laquellel Ÿ

Ä ’lŸ Å croise . Si Ä ’ Å ne croise pas , 6

est similaire à une fonction cosinus. Si elle le croise,

6

a un “chapeau” et ressemble à la combinaison d’un cosinus et d’un cosinus à fréquence double (cf. figure 4.7). La similitude est grande si ±

Ü

et ±

å

ne sont pas proches de ± . Alors, nous pouvons obtenir explicitement les extrema de la courbe.

Comme nous essayons précisément d’approcher6

sous la forme ” Ä Ž Å ˜ˆ–•”(€ ß ’€‘ø cos”1ý–o1ƒ‚̘j’€ º cos”æ”1–1ƒ‚̘טט

nous pouvons utiliser les paramètres issus de ces extremum. Soit„ j cos”Ÿqp– n p‘˜ eta j cos”Ÿqp’ n p‘˜, alors 1 ‚ j…1Dp # €‘ø?j ق ÷‡† á º # € ß j Ù ‚ ô‡† á º –€ º , avec€ º

jWn dans le cas où aucun croisement avec n’apparaît (i.e.Ÿqp ’

n p etŸqp – n p sont entre ! n # ˆ%) ; € º j ‰ ð š u  Ù ºT» ÷  u

á dans le cas d’un croisement avec (Ÿqp’

n

pZŠLŠ Ÿqp–

n

p ). Maintenant, nous pouvons facilement obtenir l’intégrale de6

: c i43Thïm Æ j ²eŸ 5  / ó1ô õö / ñ / ó¹÷ õö 6 c i43Thïm Æ j ‹ Ú   ”є Ä Å –€ ß ˜ï–L‹€‘ø cos”1 å –o1Dpœ˜×˜ (4.4) où cos”1 å –o1Dpœ˜1j šŒ cosÙ  / á ô š ó À š ö Œ ô š ö ó ô º šDŒš ó cosÙ  / á etüŽ1 j…1 Ü –o1 å . 3.2 Illumination spéculaire

L’illumination spéculaire est donnée par :

c i43Thàm Ç j Ÿ  / ó¹ôÑõö ñ ó¹÷Ûõö ²SŽìNéçµ iÕÔ‹ Ç ” à ƒ0/1˜

4. MODÈLE D’ILLUMINATION ANALYTIQUE D’UN RAMEAU D’AIGUILLES 89 j ²SŽŸ   ^  / ó¹ôÛõö / ñ / ó1÷Ûõö ìދeì h k cos”! –ž å ˜

avec ²lì é la longueur apparente d’une aiguille. Encore une fois,ì

h

k est une fonction dont la densité est concentrée quand ìík j k , ce qui arrive quand èk j n , c’est-à-dire quand  est orthogonal à l’axe d’une aiguille Ã

ƒ . Donc la valeur 1D‘ existe seulement si ± ’“! » º –ë± # » º ’ë±e%, sinon c i43Thïm Ç jÓn . Si1 ‘

existe, nous avons à nouveauì

h k ½”1æ˜ Í ì h k ˆ”1 ‘ ˜. Commeìދ,ìêk cos”! –ž å ˜Çjë” Å

Ž  ˜ – èAkjè é , nous obtenons finalement :

c i43Thàm Ç Í ‹ Ú  º ºT» h ” Å Ž  ˜” (4.5) où ”Rj k si± o! » º –ÿ± # » º ’ÿ±•%, sinon”QjÓn .

Remarque : quand les deux valeurs où  est orthogonal à Ã

ƒ apparaissent sur la même face (avant ou arrière), ”Rjk .

3.3 Opacité

L’opacité est donnée par :

ƒj²' ¸Ûƒ i43Thïm jÿŸ  / ó ô õö / ñ / ó ÷ õö ²!ìTé CommeìTéPj sin” Å ˜, nous approchons Å byŸ å ’ n å cos”1 –1 å

˜ par le même moyen que pour la composante diffuse. C’est-à-dire :

ƒj²' ¸Ñƒ i43Thàm j`²,Ÿ ”(€ å ß  ’9‹€ Ü ø cos”1 å –o1 å ˜×˜ # ríŽh ƒj²(' ¸Ûƒ i43Thïm j`²TŽŸ ” cos”!±[˜ cos”!± å ˜à–9 sin”!±X˜ sin”!± å ˜×˜ (4.6)

4 Modèle d’illumination analytique d’un rameau d’aiguilles

Nous considérons qu’un rameau d’aiguilles est un volume ayant une forme de cylindre et une opacité anisotrope (cf. figure 4.9). Pour calculer le shader analytique d’un tel objet nous devons calculer analytiquement un rendu volumique du cylindre.

Comme l’opacitéŸ n’est pas constante le long du rayon et du rayon d’ombrage, nous obte-nons : c1j k â …½‡Š‰  Ù ‰– Ô ám— …ˆ‡Š‰ mn‹ 0˜ gf ™ ñ hïmgf Ÿ c iÕÔ‹ ÷›š mœ òž ÷2š (Ÿ\ ¡-¢ ò  (4.7) avec ÷  j¤£ j ”k– ŸÌ˜ la transparence anisotrope,²

™ la longueur du rayon dans le volume et

² Ç k¹g§Æ la longueur du rayon d’ombrage dans la volume.

Nous devons maintenant exprimer l’opacité et calculer l’intégrale, ce qui requière quelques approximations.