• Aucun résultat trouvé

Construction du masque de visibilité

2.2 Calcul de la FDRB

2.4.3 Construction du masque de visibilité

La structure hiérarchique de visibilité est construite selon un arbre quaternaire. Les feuilles de lŠarbre portent lŠinformation de visibilité. La suite de cette section détaille le processus de construction de lŠarbre.

Pour chaque niveau de subdivision de lŠarbre, lŠintersection avec le cône est réalisée. Ensuite le choix suivant est efectué :

• si une feuille est marquée non visible alors on ne la traite pas (i.e. elle est déjà occultée par un ou plusieurs obstacles) ;

• si une feuille est marquée visible alors deux cas de Ągures sont possibles :

Ű soit elle est pleinement contenue dans lŠintersection, et alors elle est marquée non visible ;

Ű soit elle est partiellement contenue dans lŠintersection ; dans ce cas, elle est sub- divisée (à condition quŠelle ne soit pas à la profondeur maximale de lŠarbre) et la procédure est rappelée sur les feuilles du noeud nouvellement créé.

Lorsque la procédure arrive à la profondeur maximale de lŠarbre, nous choisissons dŠap- pliquer une méthode agressive, consistant à considérer les feuilles partiellement couvertes comme visibles. Ceci permet de limiter le nombre de lobes Ąnalement construits. LŠautre approche, conservative, peut être mise en œuvre en prenant en compte les feuilles partiel- lement couvertes pour construire de nouveaux lobes. En pratique, les diférences visuelles entre les deux méthodes sont imperceptibles si la profondeur du masque de visibilité est suisante. Un exemple de construction de masque de visibilité est donné par la Ągure 3.16.

Figure3.15 Ű Projection des sphères occultantes sur le carré unitaire. Les sphères peuvent être projetées soit depuis une sphère située au dessus du carré (sphère verte) soit depuis une sphère située au dessous (sphère bleue) sans quŠaucun des deux cas ne soit à distinguer. Une fois le masque de visibilité créé, le terme de visibilité est déterminé de la façon suivante. Une sphère est placée sur chacune des feuilles portant lŠinformation non visible de lŠarbre. Ces sphères sont ensuite utilisées pour construire les lobes de visibilité selon la procédure décrite en section 2.4.1. Avec le masque ainsi crée, le terme de visibilité devient alors : V(i) = C(1,n,0)Nk=1 wkCk(i) (3.15)

où les pondérations wkpermettent de corriger les erreurs induites par le chevauchement

des lobes de cosinus utilisés sur des feuilles adjacentes.

La détermination de ces poids est efectuée de façon à obtenir une contribution de lŠéclairement correcte, i.e. les ombres douces ou dures et lŠéclairement. Ces poids sont dépendant à la fois de la distance dist qui sépare le carré unitaire du point à éclairer, mais également de la profondeur à laquelle la sphère est créée. En efet, la Ągure 3.18 montre que si la distance dist augmente, les lobes de cosinus deviennent de plus en plus Ąn, dès lors les chevauchements sont faibles. En revanche, lorsque la distance dist diminue, les lobes de cosinus deviennent de plus en plus épais, il est alors nécessaire de prendre en compte des chevauchements plus importants entre lobes. De plus, les sphères créées pour des feuilles situées aux profondeurs les plus importantes de lŠarbre sont les plus petites. Ces sphères engendrent alors des lobes Ąns pour lesquels les chevauchements sont faibles.

2. Application au rendu 69

(a) Sphère 1 - prof. 1 (b) Sphère 1 - prof. 2

(c) Sphère 2 - prof. 1 (d) Sphère 2 - prof. 2

(e) Sphère 3 - prof. 1 (f) Sphère 3 - prof. 2

Figure3.16 Ű Exemple de construction dŠun masque de visibilité de profondeur 2 à partir de trois sphères. En vert, les feuilles de lŠarbre représentant une portion non visible, en rouge, une partie devant être subdivisée et en jaune une partie ne rentrant pas en compte dans la construction courante du masque.

Figure 3.17 Ű Construction des nouveaux lobes de visibilité à partir du masque. Pour chaque feuille de lŠarbre marquée non visible (en vert), une sphère englobante est créée de manière à générer de nouveaux lobes.

dist

dist

Figure 3.18 Ű Chevauchement des lobes de visibilité. Pour deux distances dist don- nées, et pour le même masque de visibilité (i.e. pour les mêmes sphères sur le masque), le chevauchement est diférent : plus la distance augmente moins le chevauchement est important.

3. Application au rendu interactif 71

Etant donné que les poids sont dépendants uniquement de la distance dist et de la profondeur de lŠarbre, ils peuvent être choisis de manière indépendante de chacune des scènes. Nous avons donc réalisé un prototype permettant à lŠutilisateur de Ąxer les poids. Le prototype consiste en une scène simple composée dŠune source lumineuse, dŠun objet occultant et dŠun plan recevant lŠombre de lŠobjet. LŠutilisateur Ąxe, pour diférentes valeurs de dist, et pour chaque niveau de profondeur du masque, les poids wk de façon à

obtenir une ombre douce réaliste, i.e. une ombre parfaitement noire au centre puis, qui passe progressivement de la pénombre à la lumière. Les poids sont ajustés de façon à ne pas avoir de cassures dans lŠombre douce. Une fois ceux-ci Ąxés, ils sont stockés dans une table puis interpolés linéairement durant le rendu Ąnal, en fonction de la distance efective

dist.

Le temps de calcul des termes de visibilité est linéaire en fonction du nombre de sources lumineuses. En efet, le temps de calcul dŠun masque peut être borné par une constante C, correspondant à un masque de visibilité complet. Par conséquent, pour n sources lumineuses, la complexité en temps de construction des masques de visibilité est O(nC) = O(n).

3

Application au rendu interactif

Nous avons mis en œuvre lŠensemble des transformations proposées précédemment (transformation de chacun des termes de lŠETL, pré-calculs des produits, intégrales de lobes de cosinus et poids de visibilité) dans un prototype de calcul interactif avec prise en compte de lŠéclairement direct. Il sŠagit dŠune application où lŠenvironnement nŠest pas limité à un type de FDRB et qui permet même de faire varier ses paramètres de manière interactive. Les objets et le point de vue ne sont pas Ąxés à lŠavance et peuvent varier tout ou long du programme.

Documents relatifs