Exploitation de Povray à partir de Geomorph

Le défi de la ligne d'horizon


Lors de la création de paysages à partir d'images de relief, une tâche difficile est d'obtenir une ligne d'horizon convaincante. Une image de relief est une surface finie, aussi le concepteur doit-il trouver un moyen de "remplir" l'horizon.

Quelques techniques sont présentées ici. Une connaissance de base de Povray dans le contexte de Geomorph est recommandée.

1. Le recours à un plan infini
2. L'exploitation du brouillard
3. Le déplacement de la caméra pour dissimuler l'horizon
4. L'utilisation d'un second relief comme arrière-plan

1. Le recours à un plan inifini

La façon la plus simple de créer une ligne d'horizon est de créer un plan d'eau ou un plan de sol s'étendant à l'infini.

Un "filtre de forme" gaussien peut être utilisé pour créer une "île" avec l'image de relief. Les filtres de forme sont disponibles dans le dialogue de création ou comme outil .

Lors de la création de l'île, l'application à 100% du filtre de forme avec une fusion additive ("+") fait disparaître une grande partie du terrain. Pour en conserver une plus grande partie, vous pouvez:
La scène de gauche montre le résultat de desert.pov sans le brouillard. Le relief par défaut de l'option "subdivision 2" a servi de point de départ. Il a été filtré avec la cloche gaussienne la plus large, en utilisant la fusion multiplicative.

La scène de droite montre le même relief avec la scène sea_and_rocks.pov, sans le brouillard.





2. L'exploitation du brouillard

Une variante du plan infini consiste à employer l'instruction fog pour créer une légère brume atmosphérique.

La scène de gauche provient de desert.pov. Le paramètre distance de l'instruction fog a été diminué de 10 à 1, les paramètres fog_offset et fog_alt ont été ramenés de 0.3 à 0.1.

La scène de droite provient de sea_and_rocks.pov. Les paramètres de l'instruction fog ont été laissés à leurs valeurs par défaut, qui donnent une légère brume.





3. Le déplacement de la caméra pour dissimuler l'horizon

Les exemples du "Désert avec arbre" et des terraces de ma gallerie ont été créés avec cette technique. Naturellement, le principal désavantage de cette technique est l'invisibilité du ciel.




Pour composer avec cet inconvénient, la hauteur de la caméra peut être augmentée (ou le terrain descendu) alors que le plan de sol ou d'eau est retiré. L'arrière du relief tombe alors dans un ciel vide, comme les faux édifices dans le "making-of" d'un vieux western.

Cette dernière technique n'est pas compatible avec des textures de nuages appliquée directement sur l'objet sky_sphere. Une déformation sphérique très prononcée des nuages en résulterait. Un plan de nuages doit être utilisé, et il doit subir une rotation sur les axes X et Z de façon à suivre la caméra. À titre d'exemple, voici comment le ciel de l'image de droite, extraite de ma gallery, est constitué:

sky_sphere {pigment {sky_gradient scale <1.0, 1.0, 1.0> } }
// Le plan de nuages:
plane { y,1000
    texture {
        pigment {
                granite
                turbulence 0.5
            octaves 6
         omega 0.1
        lambda 2
                color_map {
                [0.3 rgbt <0,0,0,1>]
                [1.0 rgb 1]
                }
        }
        finish {ambient 0.8 }
        scale 11000
    }
    no_shadow
    hollow
    rotate x*rot_x
}

Souvenez-vous que rot_x provient de camera.inc, généré à partir de l'aperçu Geomorph au moment de l'appel de Povray.


4. L'utilisation d'un second relief comme arrière-plan

Un second relief a été utilisé comme arrière-plan dans cette nouvelle version du désert, prise de ma gallerie.

D'autres images de relief pourraient être utilisées simultanément, pas seulement deux.

Les reliefs de Geomorph sont généralement pavables, de telle sorte qu'ils peuvent remplir par répétition le plan X-Z. Cependant, le pavage présente généralement des discontinuités dans Povray. Ces discontinuités peuvent être retouchées avec un éditeur comme The Gimp.

Un seul relief peut être placé automatiquement à partir de l'aperçu de Geomorph (à tout le moins dans la version 0.23). Pour placer les autres, la scène *.pov doit être éditée à la main. Vous devez alors choisir quel relief sera contrôlé à partir de l'aperçu, celui qui est appelé "test.png". Par exemple, dans desert_new.pov, dont le résultat est montré à droite, l'avant-plan de dunes est contrôlé à partir de l'aperçu, et un terrain appelé desert_background.png doit être créé avant d'exécuter la scène: 

#declare hf_background =
height_field
{
png "desert_background.png"
   smooth
    scale < 1.0, 0.3, 1.0 >
    translate <-.5, 0.0, -.5>
}
// Now declare the foreground:
#declare hf =
height_field
{
png "test.png"
   smooth
    scale < 1.0, 0.3, 1.0 >
    translate <-.5, 0.0, -.5>
}
(...)
/**********************************************************************************************/

object {hf_background translate y*-0.0075 translate z*0.15 rotate <0,rot_y,0> texture { rock1  } scale 2.2 * <1.0, 1.1, 1.0> }
object {hf translate y*-0.0075 texture {pigment {color 1.2*rock_color } }  }

À partir de la version 0.40, Geomorph inscrit les noms des terrains dans des variables prédéfinies dans geomorph.inc:
main_terrain = "test.png" ou le terrain en cours d'édition
water_map = "hf_water.png"
ground_map = "ground_map.png"
background_map = "hf_background.png"
crater_map = "craters.png"

Haut

Écrit en août 2005, modifié en janvier 2007

Contact:    Patrice St-Gelais

Retour à l'index de la documentation

SourceForge.net Logo