Les médias à base de fichiers de densité df3 sont plus rapides que les médias procéduraux tout en interagissant bien avec la lumière comme un média traditionnel. Pour cette raison, on peut utiliser les fichiers df3 pour créer des paysages de nuages presque réalistes, avec notamment des types de nuages impossibles à réaliser avec d'autres méthodes.
Les fichiers df3 ont été créés avec les macros Makecloud1 et Makecloud2 (téléchargeables ci-dessous) qui fonctionnent de la façon suivante : ces macros créent un pigment en noir et blanc tridimensionnel dans le plan x-y, puis déplacent ce pigment sur l'axe z, de telle sorte que, lorsque la macro est lancée comme une animation, chaque image (au format TGA) correspond à une "tranche" (comme dans un scanner médical). L'image ci-dessous montre 10 "tranches" de nuages alignées sur l'axe Z (en rouge).
La principale difficulté est de fabriquer une forme de nuage crédible, et les deux macros utilisent pour cela des méthodes différentes :
Makecloud1.pov utilise un pigment procédural (une fonction avec de la turbulence). La macro est rapide et peut être utilisée pour des nuages assez peu denses et très turbulents.
Makecloud2.pov crée d'abord un object "nuage" en 3D (un blob) et utilise cet objet comme pigment. Cette macro est plus lente que la précédente mais plus flexible, et elle donne des nuages plus compacts.
Voir les en-têtes des macros pour les instructions d'usage et la signification des paramètres.
Pour produire le fichier df3 à partir des images TGA, l'utilitaire tga2df3 est requis :
Le fichier df3 est ensuite utilisé de la façon suivante (les valeurs de scattering et d'absorption sont données comme exemples et doivent être adaptées à la scène) :
#declare C_Cloud=White*0.7;
#declare C_Scattering=C_Cloud*0.004;
#declare C_Absorption=(1-C_Cloud)*0.0005;
#declare Cloud=box{-0.5,0.5
texture{pigment{Clear}finish{ambient 0 diffuse 0}}
hollow
interior{
media{
scattering{1,C_Scattering extinction 0.3}
absorption C_Absorption
intervals 3
density{
density_file df3 "cloud2_1.df3"
turbulence 0.15 // surtout utile pour les nuages MakeCloud2 qui ne sont pas turbulents à l'origine
lambda 2.1
omega 0.8
interpolate 1
translate -0.5
scale <1,-1,1>
}
}
}
scale <4/3,1,1>
}
Une des raisons pour laquelle les nuages df3 sont rapides tient (probablement) au fait que les valeurs de densités sont précalculées. Une autre raison est que chaque nuage est contraint dans sa propre boîte. En fait, on peut même gagner en vitesse en utilisant un conteneur plus petit, du moins si le nuage n'est pas trop turbulent (car sinon il risque de déborder). La méthode des boîtes à nuages a cependant deux limites majeures :
Par ailleurs, les formes des nuages obtenues par Makecloud1 et Makecloud2 sont loins d'être optimales et les utilisateurs sont invités à expérimenter avec d'autres méthodes. Un problème particulièrement tordu consiste à garder plat le fond du nuage... Dans la réalité, on peut avoir un sommet de nuage très turbulent avec un fond complètement plat. MakeCloud2 permet de tirer le nuage vers le haut, mais cela ne marche pas très bien.
Méthodes | Avantages (1) | Inconvénients |
Photo en arrière-plan | Rapide ; facile à mettre en oeuvre ; réaliste par définition ; tous types de nuages autorisés | Peu dimensionnable (2) car limité par la taille de la photographie ; nécessite des photos correspondant à la scène ; environnement partiels (sauf cas particulier type images HDRI englobantes) ; pas d'interaction avec l'éclairage (3) ; possible décalage stylistique avec les objets 3D |
Ciel Terragen en arrière-plan | Rapide ; assez bien dimensionnable ; assez simple à mettre en oeuvre pour les ciels simples ; assez réaliste ; environnements complets | Bonne connaissance de Terragen requise ; peut-être difficile à faire pour des ciels complexes ; limité aux ciels que Terragen peut faire (et qui sont assez reconnaissables) ; n'interagissent pas avec l'éclairage |
Pigment procédural sur un plan ou une sky_sphere (ciel entier) | Rapide ; très dimensionnable ; facile dans certains cas ; assez réaliste dans certains cas (voir les cirrus de la démo "Mer") | Plutôt difficile à mettre en oeuvre quand on souhaite des ciels réalistes ; pas d'interaction avec l'éclairage ; non adapté à de nombreux cas (style cumulus de beau temps) |
Pigment procédural sur un polygone (nuage isolé) | Rapide ; dimensionnable ; assez réaliste dans le cas de grands paysages nuageux vus sous un certain angle | Plutôt difficile à mettre en oeuvre ; pas d'interaction avec l'éclairage ; inutilisable sauf cas particuliers |
Empilement de plans avec pigment procédural partiellement transparent | Rapide pour des résolutions d'écran ; souvent plus réaliste que les pigments procéduraux ; interaction avec l'éclairage | Peut être lent à très lent pour de grandes résolutions car le nombre de plans doit alors être élévé ; |
Media basé sur un pigment procédural | Dimensionnable ; peut être très réaliste, voire photoréaliste quand utilisé en combinaison avec d'autres médias atmosphériques ; interaction avec l'éclairage quasi-parfaite | Horriblement lent (quasi inutilisable pour les rendus de grande taille) ; difficile à tester et mettre en oeuvre à cause de cette lenteur ; mal adapté aux gros nuages isolés style cumulus de beau temps |
Media basé sur un fichier de densité df3 | Plutôt rapide ; peut être très réaliste, notamment la forme des nuages (type cumulus de beau temps) ; interaction (partielle) avec l'éclairage | Moyennement dimensionnable ; peut-être difficile à mettre en oeuvre ; nécessite la génération de fichiers df3 par un utilitaire externe ; mal adapté aux couverts nuageux denses |
(1) Les avantages et inconvénients sont ici très généraux et on pourra facilement trouver des contre-exemples d'application de ces méthodes.
(2) Par "dimensionnable" on entend ici la capacité de l'objet ou de la texture à conserver son aspect quelque soit la résolution de rendu.
(3) Un nuage interagissant parfaitement avec l'éclairage devrait changer d'aspect selon la couleur, la position et l'intensité du soleil, et projeter des ombres tant sur le sol que sur les medias atmosphériques situés ci-dessous. Tout ceci peut être partiellement simulé pour les méthodes ne permettant pas d'interaction réelle.
Cet objet 3D a été utilisé dans les images suivantes :
Creative Commons License By Attribution