vers l'index général / vers l'index des caméras et lumières / page précédente : options des sources lumineuses

Ombres douces (area_light)

objectif

Faire en sorte que les contours des ombres soient adoucis, comme dans la réalité.

explication

Les ombres nettes et tranchantes rendues par POV-Ray n'existent pas dans la réalité. En effet, toutes les sources lumineuses (en fonction des distances entre la source, l'objet qui provoque l'ombre et la surface qui reçoit l'ombre) produisent des ombres aux contours plus ou moins adoucis. Ce phénomène est dû au fait que les sources lumineuses ne sont jamais des points, mais ont toujours une dimension plus ou moins grande : le filament d'une ampoule, le réflecteur d'une lampe de bureau, le diamètre d'un astre...

POV-Ray ne permet pas d'utiliser des sources non ponctuelles, mais peut simuler, à partir d'un point lumineux, la dispersion des rayons lumineux qui provoque ces ombres douces.

Il suffit de spécifier, en plus du point de la source, la dimension et l'orientation d'un quadrilatère censé représenter la surface d'émission lumineuse.

syntaxe

light_source {
       area_light        
       <Vec1>,<Vec2>,Nbr1,Nbr2   // vecteurs, décimaux
       (jitter)               
       (adaptive Niveau)      // décimal
       (orient)               
       (circular) 
       }

Les deux vecteurs placés après area_light donnent la dimension et l'orientation du quadrilatère d'émission (par rapport à l'origine). L'orientation peut s'imaginer comme le plan qui passe par l'origine et les deux vecteurs, la dimension dépendant simplement de la longueur des vecteurs.

Les deux nombres décimaux après les vecteurs donnent respectivement le nombre de sources théoriques disposées sur ces vecteurs (le nombre total de sources théoriques étant la multiplication de ces deux valeurs).

L'ensemble de ces sources est automatiquement centré par rapport à la position du point lumineux principal.

area_light simple sources théoriques sans jitter

circular

Le fait que la grille soit orthogonale (ou presque) a une conséquence fâcheuse : les ombres, même d'objets ronds, ont tendance à être un peu "carrées". Le mot clé circular modifie la façon dont les rayons sont lancés, et donne un meilleur résultat avec les ombres d'objets courbes. Notez qu'il s'agit d'une approximation (la quadrature du cercle !).

circular

orient

Si un objet se trouve proche du plan défini par les deux vecteurs de l'area_light, son ombre risque d'être "écrasée" puisqu'il ne bénéficie plus de la pleine étendue des sources théoriques. Pour remédier à cela, il faut utiliser le mot clé orient qui fait en sorte que, pour chaque rayon de lumière lancé, la grille de sources est réorientée de telle manière que celle-ci soit toujours perpendiculaire au rayon calculé.

Si orient est utilisé, circular est automatiquement activé.

orient

jitter

Puisqu'on simule la présence d'un certain nombre de sources, même s'il y en a beaucoup, un effet de "bandes" d'ombres successives va apparaître. Pour s'en débarrasser, on peut demander à POV-Ray de disperser un peu les rayons de lumière, à l'aide du mot clé jitter (on/off). Attention : jitter, à l'instar de crand, est une des rares fonctionnalités vraiment aléatoires de POV-Ray, et le résultat variera légèrement d'un rendu à l'autre. À éviter donc pour les animations, à moins d'avoir beaucoup de sources théoriques.

avec jitter

adaptive

Enfin, le mot clé adaptive enclenche l'utilisation d'un système d'échantillonage adaptatif, qui vise à réduire le nombre d'échantillons calculés pour une ombre, en réutilisant des valeurs déjà trouvées pour les sources théoriques voisines. L'échantillonage se fait par affinages successifs de la grille de sources, et cherche à ne pas lancer de rayons supplémentaires si la variation entre deux zones voisines de la grille n'est pas significative.

La valeur spécifiée après adaptive est un entier positif, qui détermine le nombre minimal d'échantillons à prendre en compte : adaptive 0 met en oeuvre au moins 4 échantillons (2*2, les coins du quadrilatère), adaptive 1 en utilise au moins 9 (3*3), adaptive 2 en utilise au moins 25 (5*5), etc... Une bonne valeur de départ est 1, une valeur trop basse produit des ombres imprécises, mais une valeur élevée prend beaucoup plus de temps de calcul.

exemples

light_source {
           <25,42,36> White*2
           area_light <0,5,30>,<45,1,0>,3,4
}

page suivante : groupes de lumières

auteur : Fabien Mosen