vers l'index général

le brouillard

compatibilité

POV-Ray 2.0
POV-Ray 3.1 : brouillard de surface ("layered fog"), filter et transmit

syntaxe

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).

exemples

//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     
}

remarques

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.

CSG

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