Texturer un paysage Geomorph
avec Povray


maprock1.inc
geomorph_txtr.inc
slope_patterns.inc
painted_desert_map2.inc

Les textures d'un terrain sont d'une grande importance pour créer une impression de réalisme. Elles sont presque aussi importantes que son relief.

Cette section présente les textures disponibles dans les fichiers "include" Povray livrées avec la version 0.23 de Geomorph.

Le contenu est destiné à des non-experts, qui ont lu au minimum une introduction à Povray et l'Anatomie d'un fichier Povray pour utiliser Geomorph. Les exemples proposés ne montrent que les parties des fichiers Povray nécessaires à l'ajout de textures. L'utilisateur doit au minimum définir une caméra et une source lumineuse, par exemple en utilisant l'une des scènes prédéfinies fournies avec Geomorph. La scène de test est fournie ici - vous n'avez qu'à vérifier la valeur des paramètres et quelles lignes ont été désactivées en utilisant des marques de commentaires (// ou /*...*/). Les fichiers "include" mentionnés, distribués avec Geomorph 0.23, peuvent aussi être trouvés ici.

Tous les exemples de cette page font usage de variables dont les valeurs peuvent être initialisées par l'utilisateur. L'usage de certaines textures peut sembler complexe au premier abord en raison du grand nombre de paramètres impliqués. Cependant, presque tous sont optionnels et peuvent être omis.

Il s'agit d'un travail non terminé. Ces textures sont toujours perfectibles et pourraient évoluer dans les prochaines versions de Geomorph.

Version 0.40 et ultérieure
- geomorph.inc peut être utilisé à la place de maprock1.inc, geomorph_txtr.inc et slope_patterns.inc. Ce fichier inclut les 3 autres.
- Quand geomorph.inc est utilisé, toutes les déclarations png "test.png" dans cette page doivent être remplacées par png main_terrain

Les pigments et les normales

L'apparence d'une texture dépend essentiellement de sa couleur, donnée par le mot-clé pigment, et de sa normale, ou le "toucher" de sa surface, donnée par le mot-clé normal.

La plupart des textures Povray fournies avec Geomorph ont une composante pigment et une composante normal. L'intensité des deux composantes peut être ajustée par l'utilisateur.

Pour comprendre de façon intuitive ce qu'est une normale, regardez le tutoriel "Mer et Lune". Les cratères de la Lune sont créés comme une normale, qui simule la déformation de la surface. Il n'y a aucune déformation effective de la sphère lunaire: vous ne verrez aucune dépression ni aucune montagne sur son bord.

Un index des fichiers "include"

maprock1.inc

Fournit une carte de couleurs, généralement utilisée avec un motif de gradient pour simuler une roche sédimentaire. La carte de couleur peut aussi être utilisée pour simuler des bandes de nuages sur une planète gazeuse géante. La couleur de base est paramétrable par l'utilisateur. Les bandes ne représentent qu'une variation de densité à partir de cette couleur.
Vous pouvez générer votre propre carte de couleurs à l'aide du programme "colmap" (expliqué plus bas).
geomorph_txtr.inc

Fournit des textures de sable, d'herbe et de granite, dont le granite humide du tutoriel sur les crevasses.
slope_patterns.inc

Fournit des textures de roches, de forêt, d'arbustes et de neige variant selon la pente. La neige apparaît aux altitudes plus élevées. La forêt, les arbutes ou la neige sont remplacés par le roc nu lorsque la pente est trop raide.
painted_desert_map1.inc
painted_desert_map2.inc
painted_desert_map3.inc

 
Ces fichiers définissent des cartes de couleurs dans des teintes pastel tirant sur le rouge, sous le nom de ground_map, pour être utilisées comme gradients simulant les couleurs du Désert Paint de l'Arizona. Il s'agit de couleurs réelles, échantillonnées sur des diapositives Kodachrome prises 2 à 3 heures après le lever du soleil. La variable col_density peut être utilisée pour ajuster la densité globale de ces couleurs.

Geomorph fournit aussi les fichiers uranus.inc, qui crée une géante gazeuse ressemblant à Uranus et ses anneaux (les couleurs sont exagérément saturées!), ainsi que stars.inc, qui donne une simple texture étoilée utilisable sur un objet sky_sphere.

Exemples d'utilisation de maprock1.inc

Le fichier maprock1.inc ne contient qu'une carte de couleurs, utilisable pour construire un pigment.

Des couleurs sombres ont été utilisées dans ces exemples afin d'obtenir une apparence terreuse.

Utilisation
Résultat
De base:
#declare rock_color=<0.55,0.45,0.3>; // Obligatoire
#include "maprock1.inc"
...
height_field {
png "test.png"
smooth
texture {pigment {gradient y color_map{rock_map} scale 0.5} }
scale < 1.0, 0.3, 1.0 >
translate <-.5, 0.0, -.5>
}

Ici nous réduisons la texture de moitié (0.5), afin de répéter les bandes une fois (2 cycles), autrement elles sont difficiles à voir.

De base, sur une sphère:
#declare rock_color=<0.55,0.45,0.3> ;
#include "maprock1.inc"
...
sphere { <0,0,0> 1
texture {pigment {gradient y color_map{rock_map}} }
}

Voyez comment la texture est répétée. On distingue une coupure nette à l'équateur. Pour obtenir le gradient complet sans répétition, il faut le déplacer de 50% sur l'axe Y et l'étirer de 200% sur ce même axe:
texture {pigment {gradient y color_map{rock_map}} translate 0.5 scale 2 }

Ajoutons de la turbulence, utilisons une autre couleur:
#declare rock_color=<0.5,0.5,0.2> ;
#include "maprock1.inc"
...
sphere { <0,0,0> 1
texture {
    pigment {gradient y color_map{rock_map}
    warp {turbulence 0.1}
    } // end of pigment
}
}

Ici le gradient est réutilisé comme une normale. Nous #déclarons le pigment dans une variable pour en faciliter la réutilisation:
#declare strata = pigment {gradient y color_map{rock_map} warp {turbulence 0.1}}
sphere { <0,0,0> 1
texture {
    pigment { strata }
    normal { pigment_pattern {strata} 1.5 } // 1.5 est l'intensité ("hauteur") de la déformation normale
}
}

Maintenant nous réutilisons le pigment comme une normale sur un terrain, pour accentuer les couches sédimentaires:
#declare rock_color=<0.55,0.45,0.3>
;
#include "maprock1.inc"
...
#declare strata = pigment {gradient y color_map{rock_map} warp {turbulence 0.1}}
height_field {
png "test.png"
smooth
texture {pigment {strata} normal {pigment_pattern{strata} 1.0} scale 0.3}
scale < 1.0, 0.3, 1.0 >
translate <-.5, 0.0, -.5>
}
Nous avons choisi une intensité de 1.0. Celle utilisée sur la sphère était un peu trop forte, à 1.5.

La carte de couleurs peut aussi être utilisée avec d'autres motifs qu'un gradient.
...
#declare strata = pigment{granite color_map {rock_map} }
sphere { <0,0,0> 1
texture {pigment {strata} normal{pigment_pattern{strata} 1.0 }}
}


La création de nouvelles cartes de couleurs avec colmap

Vous pouvez générer de nouvelles cartes de couleurs aléatoires avec le programme colmap. Ce programme peut être trouvé dans le répertoire racine des scènes Geomorph (/usr/local/share/geomorph/0.23/scenes for version 0.23) ou téléchargé ici (source).

Supposons que vous avez copié colmap dans votre répertoire courant (ou que vous allez préfixer son nom avec son chemin complet lorsque vous l'exécuterez). L'usage de base est:
./colmap 35 50 75
... où 35 est le nombre de valeurs (bandes) désiré, 50 est la variation aléatoire en % de la largeur de chaque bande, et 33 est la variation aléatoire en % de leur densité.

Si colmap existe mais refuse de s'exécuter, vérifiez s'il a les permissions pour être exécutable. Sinon, changez-les:
chmod u+x colmap

La sortie apparaîtra sur la console. Redirigez-la dans le fichier de votre choix:

./colmap 35 50 75 > mon_fichier.inc

Les textures de geomorph_txtr.inc

geomorph_txtr.inc
contient les textures conçues lors de la rédaction des tutoriels, sauf celles qui dépendent de la pente, qui se trouvent dans slope_patterns.inc. Ces exemples montrent les textures disponibles dans Geomorph 0.23.

Texture et utilisation
Result
sand1: Sable du désert ou d'un fond marin présentant une normale ondulante, à utiliser de préférence sur un plan de sol ou un terrain très lisse. Ici le terrain a été lissé avec un rayon de 30, puis le contraste a été abaissé à -35.

#declare sand_color=<0.75,0.55,0.35>; // Spécification optionnelle; lorsque absente, cette couleur est utilisée
#include "geomorph_txtr.inc"
...
#declare hf=
height_field {
    png "test.png"
    smooth
    scale < 1.0, 0.3, 1.0 >
    translate <-.5, 0.0, -.5>

}
...
object  {hf 
texture {sand1 scale 0.01 rotate y*45} }

Notez comment la texture est réduite (scale 0.01) pour montrer les ondulations.

shore_granite: Une texture complexe utilisée dans le tutoriel sur les crevasses. Le bas imite un granite humide. Au niveau des vagues croissent des algues allant du jaune au vert. Enfin, les sommets peuvent être couverts d'herbe, selon l'échelle donnée à la texture.

#declare granite_density=1.5; // Optionnel. Déclarer seulement si vous désirez une valeur différente de 1.2 (ex. 1.5 pour une texture plus claire, 1.0 pour une texture plus foncée).
#declare granite_ambient_finish = 0.0; // Optionel. Augmenter pour obtenir des ombres plus douces. La valeur par défaut est 0.2.
#include "geomorph_txtr.inc"
...
#declare hf=...
// Voir l'exemple précédent
...
object  {hf  texture {shore_granite} }

granite_1:  Un granite qui simule des crevasses à l'aide d'une normale. La densité peut être réglée. Remarquez le nom de la variable: granite1_density plutôt que granite_density. Le terrain de 512x512 a été lissé avec un rayon de 30 pixels.

#declare granite1_density=1.0;  // Optionel; le défaut est 1.0
#declare granite1_grain_scale=1.0; // Optionel; le défaut est 1.0; donner une valeur
> 2 pour voir une différence réelle
#include "geomorph_txtr.inc"
...
#declare hf=...
...
object  {hf  texture {granite_1 scale 0.5} }

granite_2:  Une composante de la texture shore_granite. À grande échelle, l'apparence est celle d'un roc raboteux. La densité peut être réglée à l'aide de la variable granite_density.
#declare granite_density=1.5;  // Optionel; le défaut est 1.5

#include "geomorph_txtr.inc"
...
#declare hf=...
...
object  {hf  texture {granite_2 scale 0.5} }

granite_2: Maintenant avec une petite échelle.
#declare granite_density=1.5;
#include "geomorph_txtr.inc"
...
#declare hf=...
...
object  {hf  texture {granite_2 scale 0.02} }

t_grass: Une texture herbeuse composée du pigment p_grass réutilisé comme une normale.
#declare grass_density=1.0; // Optionel; le défaut est 1.0
#declare grass_scale=1.0; // Optionel; le défaut est 1.0; vous pouvez spécifier cette échelle directement dans la texture
#include "geomorph_txtr.inc"
...
#declare hf=...
...
object  {hf  texture {t_grass scale 0.5} }
Ou encore:
object  {hf  texture {pigment {p_grass} normal {pigment_pattern{p_grass} 1.0} scale 0.5} }


 
Les textures de slope_patterns.inc

La version 3.5 de Povray et les versions ultérieures offrent un pattern ("motif") slope (pente), permettant de colorer ou de texturer une surface selon sa pente.

Par exemple, il est maintenant possible de remplacer l'herbe, les arbustes ou la forêt avec un roc nu quand la pente du relief devient trop forte.

Cette fonctionnalité peut aussi être utilisée pour simuler l'adhérence de la neige sur un terrain.

Cette section présente les textures développées pour exploiter cette fonctionnalité. Les premières textures comme "forest" et "snow" sont des textures simples qui servent de blocs de composantes pour construire des textures plus complexes dépendant de la pente.

Remarquez que slope_patterns.inc réutilise maprock1.inc, déjà vu. C'est pour cette raison que la variable rock_color est présente.

Le relief lisse utilisé est la "subdivision 2" standard générée au démarrage de Geomorph, lissée avec un rayon de 30 pixels. Le contraste a aussi été diminué à -35. Le relief est disponible ici. La caméra 2 est exploitée.

Le relief érodé provient aussi de la "subdivision 2" standard, érodée avec l'outil d'érosion par la pluie, "crêtelée" avec 3 répétitions puis tournée. Ce relief est disponible ici. La caméra 5 est utilisée.

1. forest

Une texture foncée avec des bosses qui ressemblent à des arbres vus de loin. La couleur est échantillonnée à partir d'une photographie de la taïga d'épinettes noires du Québec. Vous voudrez probablement accroître sa luminosité pour simuler des feuillus.

Une apparence plus fine peut être produite en initialisant à 1.0 la variable optionnelle UseGranite (côté droit de l'image).

#declare forest_color_density=1.2; // Optionel. Défaut de 1.0, adéquat pour un gradient, mais paraît trop sombre lorsque la texture est utilisée seule comme ici
// Augmentez encore pour simuler des feuillus

#declare forest_normal=1.0;
// Optionel. Augmentez pour accentuer la profondeur les bosses, diminuez pour les réduire.
#declare forest_normal_scale=1.0;  // Optionel. Grandeur relative des bosses.
#declare UseGranite=0 ; // Régler à 1.0 pour utiliser un motif de granite plutôt que des bosses, pour obtenir une texture plus "fine".
#include "slope_patterns.inc"
...
#declare hf=
height_field {
    png "test.png"
    smooth
    scale < 1.0, 0.3, 1.0 >
    translate <-.5, 0.0, -.5>
}
...
object {hf texture {forest}}
// Vous voudrez probablement mettre à l'échelle la texture selon la nature du terrain ( ex. {forest scale 1.5}, ou utilisez la variable forest_normal_scale).

2. bushes

Quand l'altitude ou la pente augmente, les arbres se font plus rares. Ils sont remplacés par des arbustes, qui ont souvent l'air plus pâle que les arbres.

UseGranite fonctionne aussi pour cette texture.

#declare bushes_color_density=1.2; // Optionel. La valeur par défaut est héritée de forest_color_density.
#declare bushes_normal=1.0;
// Optionel. Accentuation du motif.
#declare UseGranite=0 ;
#include "slope_patterns.inc"
...
#declare hf=... // Voir l'exemple précédent
...
object {hf texture {bushes}}

3. snow

Une texture de neige standard, avec un léger motif. Une suggestion: essayez d'augmenter l'échelle du motif bumps pour voir la différence. L'échelle par défaut est appropriée pour un point de vue distant, c'est pourquoi le motif a plutôt l'air granuleux.

#declare snow_density=0.8; // Optionel. Vaut 1.0 par défaut. En l'absence de nuages ou d'une légère brume, avec une valeur de 1.0, les hautes lumières sembleront "brulées".
#declare snow_color=<0.95,0.95,1.0>;
// Optionel. La valeur par défaut est montrée - un blanc bleuté.
#include "slope_patterns.inc"
...
#declare hf=... // Comme ci-haut.
...
object {hf texture {snow}}

4. gradient_rock_snow

Cette texture donne un terrain rocheux avec de la neige au sommet, indépendamment de la pente. La couleur du roc, sa normale, son échelle et sa turbulence, de même que la couleur de la neige, sa densité et son altitude de départ peuvent être contrôlées. Toutes les variables sont optionnelles.

Un conseil: si vous ne désirez pas les bandes sédimentaires, augmentez l'échelle du pigment du roc (rock_pigment_scale) à une grande valeur comme 10. Augmentez rock_normal à 1.5 ou 2.0 pour accentuer le caractère granuleux du roc.

La partie gauche de l'image montre le résultat obtenu avec toutes les variables laissées à leur valeur par défaut, tandis que le côté droit présente le résultat obtenu lorsque l'échelle des bandes sédimentaires est augmentée à 10, pour ne plus les voir, et lorsque le caractère granuleux est accentué en augmentant rock_normal à 1.5.

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;
#declare snow_height=0.5;
// Altitude relative de l'enneigement. La valeur par défaut est 0.5.
// Contrôle du roc
#declare rock_normal=1.0;
// Amplitude des bandes et de la granulation
#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0;
// Échelle globale
#declare rock_pigment_scale=1.0; // Pour mettre à l'échelle les bandes seulement, sans la granulation
#include "slope_patterns.inc"
...
#declare hf=... // Comme ci-haut
...
object {hf texture {gradient_rock_snow}}

5. gradient_forest_snow

Un autre gradient simple, avec la neige et la forêt séparés par une légère couche d'arbustes.

toutes les variables déjà vues pour forest et snow peuvent être contrôlées.

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;
#declare snow_height=0.5;
// Contrôle de la forêt
declare forest_color_density=1.0;
#declare forest_normal=1.0;

#declare forest_normal_scale=1.0;

// Contrôle des arbustes
#declare bushes_color_density=1.0;
#declare bushes_normal=1.0;

#declare bushes_normal_scale=1.0;

#declare UseGranite=0 ;

#include "slope_patterns.inc"
...
#declare hf=... // Comme ci-haut
...
object {hf texture {gradient_forest_snow}}

6. gradient_forest_bushes

Variante du gradient (5), sans la neige.

Ici la densité de la couleur des arbustes a été augmentée à 1.1 et celle de la couleur de la forêt diminuée à 0.9, pour accentuer le contraste etnre les deux couches.

La variable UseGranite peut aussi être utilisée pour cette texture, afin de remplacer les bosses (bumps) par un motif de granite, plus "fin".

Un conseil: pour augmenter l'altitude à laquelle les arbustes commencent, augmentez l'échelle de la texture (comme montré). Pour diminuer cette altitude, augmentez l'échelle de la texture et déplacez-la vers le bas sur l'axe Y. Dans ce dernier cas, l'augmentation de l'échelle est requise pour éviter un "cycle", c'est-à-dire la répétition de la couche d'arbustes au pied des montagnes ou de couche forestière au sommet.

L'augmentation de l'échelle de la texture augmente aussi l'échelle de la normale, c'est-à-dire le grain de la forêt et des arbustes. Pour obtenir un grain constant, diminuez l'échelle des variables <...>_normal_scale par le même ratio, comme montré.

// Contrôle de la forêt
declare forest_color_density=0.9;
#declare forest_normal=1.0;

#declare forest_normal_scale=1.0/1.5;

// Contrôle des arbustes
#declare bushes_color_density=1.1;
#declare bushes_normal=1.0;

#declare bushes_normal_scale=1.0/1.5;

#declare UseGranite=0;

#include "slope_patterns.inc"
...
#declare hf=... // Comme ci-haut
...
object {hf texture {gradient_forest_bushes scale 1.5}}

7. slope_snow_rock

Notre première texture dépendant de la pente. Les parties les plus à pic sont au roc nu, les autres parties sont couvertes de neige. La variable adhesion contrôle le degré de couverture de la neige (0.0 -> pas de neige; 1.0 -> de la neige partout).

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;

// Contrôle du roc
#declare rock_normal=1.0;
/ / Amplitude des bandes et de la granulation
#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0; // Échelle globale
#declare rock_pigment_scale=1.0; /
/ Utilisez pour mettre à l'échelle les bandes seulement, sans le grain
// Adhérence de la neige
#declare adhesion=0.6;
// Le défaut est 0.5
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {slope_snow_rock}}

8. slope_forest_rock

Un concept similaire à slope_snow_rock, avec des arbustes et une forêt plutôt que de la neige. La variable adhesion est exploitable de la même façon.

Habituellement, les arbres ne croissent pas sur les parties les plus abruptes des montagnes. Ils sont progressivement remplacés par des arbustes ou de l'herbe, eux-mêmes remplacés par du roc nu lorsque la pente croît davantage. En conséquence, l'"adhérence" de la composante forest est inférieure à celle de la composante bushes, même si une seule variable contrôle ces deux composantes.

// Contrôle du roc
#declare rock_normal=1.0;
/ / Amplitude des bandes et de la granulation
#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0;
// Échelle globale
#declare rock_pigment_scale=1.0;
// Utilisez pour mettre à l'échelle les bandes seulement, sans le grain
// Contrôle des arbustes
#declare bushes_color_density=1.0;
#declare bushes_normal=1.0;

// Adhérence des arbustes et de la forêt
#declare adhesion=0.5;
// Défaut de 0.5
#declare UseGranite=0;
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {slope_forest_rock}}

9. slope_rock_bushes

// Contrôle des arbustes
#declare bushes_color_density=1.0;
#declare bushes_normal=1.0;

// Adhérence des arbustes
#declare adhesion=0.5;
// Défaut de 0.5
#declare UseGranite=0;
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {slope_rock_bushes}}

10. rock_top_snow

Cette texture varie à la fois selon l'altitude et selon la pente. Elle combine (4) gradient_rock_snow et (7) slope_rock_snow.

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;
#declare snow_height=0.4;
// Contrôle du roc
#declare rock_normal=1.0;

#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0;
#declare rock_pigment_scale=1.0;

// Adhérence de la neige
#declare adhesion=0.5; // Défaut de 0.5
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {rock_top_snow}}

11. forest_rock_snow

Cette texture correspond en gros à (8) slope_forest_rock, à laquelle on a superposé un gradient qui ajoute de la neige au sommet. La neige ne dépend que de l'altitude, pas de la pente.

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;
#declare snow_height=0.5;
// Contrôle du roc
#declare rock_normal=1.0;

#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0;
#declare rock_pigment_scale=1.0;

// Adhérence de la neige, des arbustes et de la forêt
#declare adhesion=0.7; // Défaut de 0.5

#declare UseGranite=0;
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {forest_rock_snow}}

12. forest_rock_snow_bushes

Ici on reprend (11) forest_rock_snow en faisant aussi dépendre la neige de la pente.

// Contrôle de la neige
#declare snow_density=1.0;

#declare snow_color=<0.95, 0.95, 1.0>;
#declare snow_height=0.5;
// Contrôle du roc
#declare rock_normal=1.0;

#declare rock_color=<0.7,0.6,0.3>; 
#declare rock_scale=1.0;
#declare rock_pigment_scale=1.0;

// Adhérence de la neige, de la forêt et des arbustes
#declare adhesion=0.7; // Défaut de 0.5

#declare UseGranite=0;
#include "slope_patterns.inc"
..

#declare hf=...
...
object {hf texture {forest_rock_snow_bushes}}


Les textures des fichiers painted_desert_mapN.inc

Geomorph 0.23 propose 3 cartes de couleurs, provenant d'un échantillonnage de photographies du Désert Peint d'Arizona. Ces cartes sont destinées à être intégrées dans un pigment en utilisant l'identifiant ground_map.

Les exemples proposés sont produits à partir du relief érodé utilisé pour slope_patterns.inc, avec la même scène Povray.

Le relief a été édité afin d'élargir le sommet des montagnes. Le relief a d'abord été inversé, l'outil "crêtes" a été utilisé avec 3 ou 4 répétitions sur le relief inversé, puis le résultat a été inversé à nouveau.

Vous pouvez aussi utiliser la scène prédéfinie painted_desert.pov, incluse dans la distribution. Cette scène appelle le second fichier "include". Pour accentuer la rondeur des sommets érodés, le terrain est étiré sur les axes X et Z ("scale <2,1,2>").

1. painted_desert_map1.inc

La texture a été mise à l'échelle à 0.35 pour l'adapter à l'axe Y du relief, réduit comme à l'habitude à 0.3. La texture doit être légèrement plus grande que le relief pour éviter un cycle (la couche du haut étant répétée au bas, ou l'inverse). L'altitude des couches sédimentaires n'est pas uniforme en raison du facteur de turbulence de 0.1. Cela augmente le risque d'entremêlement de la couche du sommet et de celle de la base, lorsque la mise à l'échelle de la texture est insuffisante.

#include "painted_desert_map1.inc"
...
#declare hf=
height_field {
    png "test.png"
    smooth
    scale < 1.0, 0.3, 1.0 >
    translate <-.5, 0.0, -.5>
}
...
object {hf
texture {
    pigment {gradient y
        color_map {ground_map}
        translate y*-0.1
        turbulence 0.1
        scale 0.35
    } }
}

2. painted_desert_map2.inc

#include "painted_desert_map2.inc"
...
// Le reste du fichier est toujours le même, peu importe le fichier "include" utilisé dans cette série.

3. painted_desert_map3.inc

#include "painted_desert_map3.inc"
...



Haut

Écrit en août 2005

Contact:    Patrice St-Gelais

Retour à l'index de la documentation

SourceForge.net Logo