• Aucun résultat trouvé

FIG. 7.6: Utilisation de la géométrie virtuelle pour une scène 3D. A gauche : les objets

réels. Au centre : l’obstacle et le récepteur virtuel, plus la texture de visibilité. A droite : la texture de visibilité projetée et modulée par l’éclairage direct sur le récepteur réel.

7.3 Extensions directes

Nous présentons dans cette section un certain nombre de configurations dans lesquelles le calcul des ombres par convolution s’applique au prix de menues modifications de l’algo-rithme présenté à la section précédente. Les différentes situations peuvent êtres combinées pour traiter plusieurs de ces situations en même temps.

Les extensions sont toujours présentées dans le cas d’école introduit en 7.2.1 pour plus de simplicité. A l’exception de la dernière (section 7.3.6), elles se généralisent aisément à des éléments non plans ou non parallèles.

7.3.1 Sources non uniformes

Lorsque sur la source n’est pas uniforme, la méthode que nous avons présentée s’ap-plique toujours. Si l’on désigne par e(x)l’émittance sur la source au point x, on a alors en tout point y du récepteur :

b(y)= ρ π Z S cosθcosθ0 r2 e(x)v(x;y)dx

Le calcul conduit page 102 pour l’obtention de l’équation (7.2) reste valable si l’on remplace tout du long S par SE. Le terme V(y)devient alors :

V(y) = Z IR2S(x)E(x)v(x;y)dx = 1 α2 , s0 α?p1+α  En posant : s0 α(x)=S  , 1 αx  e  , 1 αx 

Le terme de visibilité s’écrit donc toujours comme une convolution mais ne représente plus à proprement parler de la visibilité.

Le calcul pratique s’effectue en remplaçant l’image binaire de la source par une image dont les pixels varient dans l’intervalle[0;1]de manière à représenter la fonction e norma-lisée. L’image obtenue contient donc les valeurs d’échantillonnage de la fonction s0

par sa valeur maximale sur toute la source. La constante de normalisation est ensuite in-corporée à la composante d’éclairage direct, pour obtenir l’éclairage désiré. La figure 7.7 montre un exemple d’application de notre méthode à une source non uniforme faite de quatre sources plus petites.

Image de la source

Image calculée image de l’obstacle FIG. 7.7: Exemple d’extension de la méthode de convolution à une source non uniforme.

L’ensemble formé des quatre petites sources a été considéré comme une unique source non uniforme, produisant automatiquement la superposition des quatre ombres du palmier.

7.3.2 Sources volumiques

Lorsque la source n’est pas un polygone mais un objet lumineux plus complexe, comme par exemple un luminaire modélisé par un ensemble de polygones, nous calculons l’image de la source de la même façon que pour un polygone, sachant que nous commettons une erreur d’approximation supplémentaire, qui sera discutée à la section 7.5.2.(c).

La figure 7.8 montre un exemple d’image calculée pour une source non polygonale, formée d’un assemblage de quatre tubes néon, chacun constitué de 360 polygones. On ob-serve clairement la variation par paliers de l’illumination dans la direction perpendiculaire à l’axe des néons et la variation plus régulière dans l’autre direction.

7.3.3 Récepteur non polygonal

Nous nous intéressons maintenant au cas où le récepteur est formé, non plus d’un unique polygone mais d’un ensemble de polygones. Ce cas se présente chaque fois que le récepteur est un objet complexe modélisé par une liste de facettes.

Une unique texture de visibilité est alors calculée pour tout le récepteur et se trouve partagée par chacun de ses polygones. Seul l’éclairage direct est calculé séparément pour chaque polygone du récepteur, puisqu’il faut tenir compte de l’orientation par rapport à la source de chacune des facettes. La figure 7.9 illustre cette extension.

Il faut noter que notre algorithme s’étend naturellement à des surfaces parametrées, rendues par exemple par lancer de rayon, à condition de calculer les coordonnées de texture pour chaque point afin d’en déduire la couleur exacte.

7.3. EXTENSIONS DIRECTES 107

Image de la source

Image calculée détail de l’ombre

FIG. 7.8: Extension de la méthode de convolution à une source non plane. Dans cet

exemple, la source est constituée de quatre tubes néon d’environ trois cent polygones cha-cun. L’image en bas à droite montre un détail de la texture de visibilité correspondant à l’ombre du coin de la table.

En revanche, comme on peut le voir sur la figure 7.9, la méthode ne simule pas au-tomatiquement l’ombre que porte le récepteur sur lui-même. Nous verrons au chapitre 8 (section 8.5.2) diverses méthodes pouvant résoudre ce problème.

7.3.4 Source a l’infini

Une source à l’infini est une source située suffisamment loin et de taille suffisante pour que l’on puisse considérer qu’elle occupe toujours le même ensemble de directions inci-dentes, vue de n’importe quel point du récepteur. Une telle source peut donc être représen-tée par un ensemble de directions∆mesuré par un angle solideΩ(L’exemple couramment cité de source à l’infini est le soleil).

Nous allons montrer que notre méthode s’applique naturellement au cas d’une source à l’infini. L’utilisation d’une convolution pour calculer les ombres dans cette situation parti-culière a été introduite par Max en 1991 [Max91].

En utilisant l’équation 1.1, nous pouvons écrire que :

b(y)=

Eρ π

Z

cosθv(ω;y)dω

En renouvelant l’approximation de la corrélation entre le noyau de radiosité et le terme de visibilité, nous obtenons alors :

FS(y)=E

Z

cosθdω et V(y)= Z

v(ω;y)dw

Il ne nous reste plus qu’à définir une fonction S représentant la source. Pour tout point

x dans le plan d’altitude 1 posons (C.f figure 7.10) :

S(x)= 

1 si(y;x)2

FIG. 7.9: Exemple de récepteur non polygonal. La surface (à gauche) a été placée sous la

plante de la figure 7.7. Une unique texture de visibilité est partagée (à droite) par tous les points de la surface (Une seule des quatre sources a été utilisée pour plus de clarté).

R B 0 ∆ 1 0 y y x S R B 1 d d1

FIG. 7.10: A gauche : Une source à l’infini est représentée par un ensemble de directions

d’angle solide. A droite : définition d’une fonction S dans le plan d’altitude 1, pour représenter la source.

Posons maintenant sd1(x)=S(,

1

d1x). Nous avons alors :

V(y) = Z IR2S( 1 d1 x)P(x+y)dx = Z IR2sd1(,x)P(x+y)dx = Z IR2sd1(x)P(y,x)dx = (sd1?P)(y)

Il s’agit toujours d’une convolution entre une image de la source et une image de l’obs-tacle. Seule l’image de la source doit être mise à l’échelle pour tenir compte de la distance entre l’obstacle et le récepteur.

7.3.5 Obstacle semi-transparent

Lorsque l’obstacle est semi transparent mais ne modifie pas la trajectoire des rayons lumineux, son ombre peut encore être approchée en utilisant une convolution. Il suffit pour