POV-Ray 2.0
POV-Ray 3.1 : brouillard de surface ("layered fog"), filter et transmit
La commande fog se place n'importe où dans le script, en dehors de toute autre définition
//brouillard simple : fog { color rgbft Couleur //Vecteur de couleur distance Distance //Décimal turbulence TurbVect //Vecteur omega //Décimal lambda //Décimal octaves //Décimal [modificateurs d'objets] } //brouillard de surface : fog { fog_type 2 color rgbft Couleur //Vecteur de couleur distance Distance //Décimal up Direction //Vecteur fog_offset Decalage //Décimal fog_alt Decroissance //Décimal turbulence TurbVect //Vecteur omega //Décimal lambda //Décimal octaves //Décimal turb_depth Profondeur //Décimal [modificateurs d'objets] }
Dans le cas du brouillard le plus simple, il suffit de spécifier la couleur du brouillard, et la distance (par rapport à l'observateur) à laquelle le brouillard sera complètement saturé (= aura la couleur spécifiée). Éventuellement, on peut spécifier des valeurs de filter et transmit, ce qui permettra de quand même laisser voir les objets qui sont dans le brouillard, même après la distance spécifiée.
Il est également possible de spécifier une turbulence, qui fonctionne exactement comme la turbulence des pigments, y compris dans l'utilisation de lambda, omega et octaves. L'option turb_depth, propre au brouillard, permet d'ajuster l'échelle de la turbulence le long du rayon de l'observateur (rayon entre l'oeil et un point de la scène) ; sa valeur par défaut est de 0.5.
L'utilisation d'un brouillard de surface s'enclenche en spécifiant fog_type 2. Ce type de brouillard subit, en plus de l'augmentation de densité avec la profondeur, une diminution de densité avec l'altitude. Le paramètre up, qui vaut <0,1,0> par défaut, spécifie l'axe le long duquel le brouillard se dégrade. Parfois, il peut être intéressant de changer ce paramètre, par exemple pour créer un "mur" de brouillard vertical. Le paramètre fog_offset spécifie à quelle distance (à partir de l'origine <0,0,0> et le long de l'axe up) le brouillard commence à se dégrader. fog_alt spécifie la "cadence" du dégradé, des valeurs plus élevées donnant un dégradé plus long (valeur par défaut : 0, le brouillard est stoppé net).
//brouillard de base fog {White distance 200} //brouillard de surface fog { fog_type 2 distance 50 YellowGreen fog_offset 10 //le dégradé ne commencera qu'à une altitude de 10 fog_alt 5 }
On peut utiliser plusieurs définitions de brouillard, ce qui aura pour résultat de cumuler les effets de tous les brouillards présents. Cela permet de jouer sur des profondeurs différentes, et d'enrichir l'étagement de la scène, particulièrement avec les brouillards couchés.
Comme tous les effets atmosphériques, le brouillard n'apparaîtra que si la caméra ne se trouve pas à l'intérieur d'un objet, ou si cet objet est hollow. Attention, donc, si vous utilisez une sphère ou autre chose pour faire un ciel ou un environnement quelconque, veillez à placer hollow dans la définition de ces objets.
Comme on peut s'y attendre, un brouillard ne peut pas faire partie d'une opération de CSG, mais on peut le déclarer quand même :
#declare Brouill01 = fog {...} .. fog {Brouill01 rotate ...}
auteur : Fabien Mosen