FAQ: Ecrire vos propres modèles
FAQ Terraform, version 0.1 Juin 09, 2000 par David
A. Bartold mis en forme après la FAQ Hacking Terraform
FAQ terraform, version 0.1.1 Mar. 10, 2001 par David
A. Bartold mis à jour pour Terraform 0.8.0+
Traduction Raymond Ostertag
0: Introduction
Terraform vous permet de dessiner des formes de paysages toutefois vous
voudriez peut-être utiliser la fonction 'height field'. Si vous voulez
changer la couleur de la terre, ou sa texture, et qu'il n'y a pas de fichier
modèle disponible à votre goût, vous pouvez écrire
le votre. Terraform vient avec quelques modèles décrivant
la texture de la terre et de son environnement céleste. Ces modèles
sont des fichiers type *.pov typiquement positionnés dans le répertoire
/usr/share/terraform/. Les fichiers modèles peuvent être
sélectionnés dans le menu Edition >Options puis en cliquant
sur POV-Ray >Thème. Ceux inclus en ce moment sont : bare_rock, earth_basic,
earth_canyon, and earth_green. Ce document explique comment rédiger
vos propre fichiers de modèles et suppose que vous compreniez
déjà la syntaxe des scènes POV-Ray, que vous ayez
regardé à un fichier POV-Ray exporté par terraform.
Aussi ce serait une bonne idée de voir defaults.inc comme
une référence décrivant tous les paramètres.
1: Comment Terraform fait le rendu d'une scène POV-Ray
Terraform rend une scène POV-Ray en commençant par créer
un fichier temporaire *.pov file dans votre répertoire /tmp. Ensuite
il écrite un 'heightfield' temporaire dans ce répertoire.
Il appelle l'exécutable "povray", passe le fichier temporaire *.pov
et un chemin inclus qui typiquement pointe vers usr/share/terraform. Le
fichier temporaire *.pov contient des paramètres déclarés
par #declare suivis par un #include du fichier modèle.
1.1: Paramètres
Il y a plutôt assez peu de paramètres que Terraform passe
au fichier modèle. Les plus importants d'entre eux : TF_HEIGHT_FIELD,
TF_WATER_LEVEL, TF_X_SCALE, TF_Y_SCALE, TF_Z_SCALE, TF_CAMERA_LOCATION,
et TF_CAMERA_LOOK_AT. Le premier est une déclaration de l'objet
'height field', les deux derniers sont des vecteurs utlisés pour
définir la caméra, et le reste des paramètres dans
la liste ci-dessus sont des variables. Bien d'autres paramètres
sont disponibles pour le fichier modèle, dont certains sont des
booléens. Vous n'avez pas besoin d'appliquer chaque paramètre.
1.2: Quels paramètres sont définis et où
Il n'y a qu'un paramètre que Terraform ne définit pas explicitement
dans le fichier POV-Ray temporaire qu'il exporte : TF_LANDSCAPE_TEXTURE.
Ce paramètre sera défini par le fichier modèle comme
nous allons le voir bientôt. Pour plus d'information sur des paramètres
individuels, voyez le fichier defaults.inc pour plus de documentation.
2: Fichiers de données POV-Ray
Il y a des fichiers utilisés par le système de modélisation
pour définir une scène :
-
*.pov-- Ce sont les fichiers modèles de premier niveau eux-mêmes.
Il peuvent utiliser les fichiers *.inc tel que décrit ci-dessus.
-
defaults.inc-- les #declare de chaque paramètre qui n'a pas été
encore défini.
-
*_landscape.inc-- définit TF_LANDSCAPE_TEXTURE pour un environnement
particulier.
-
earth_sky.inc, earth_water.inc-- créent respectivement les objets
pour un ciel et mer terrestres. Notez que ces fichiers inclus créent
réellement des objets, différement de votre fichier
typique *.inc, en conséquence tous les paramètres utilisés
doivent être préalablement définis avant d'inclure
un de ces fichiers.
-
generic_land.inc-- déclare un objet pour la terre et aussi la définition
de la caméra. La caméra est positionnée relativement
à la terre, c'est pourquoi elle est dans le même fichier.
Encore une fois, il crée réellement des objets, pas seulement
des #declares, donc assurez-vous que tous les paramètres sont définis
avant de l'inclure.
2.1: Votre kit de fichiers
Les fichiers mentionnés dans la section 2 sont ici pour votre usage.
Sentez-vous libre de les inclure (#include) dans votre fichier modèle.
Vous êtes aussi encouragé a créer des nouveaux
fichiers. Vous avez créé une jolie texture de paysage martien
que vous souhaitez partager ? Mettez-le dans un fichier nommé mars_rocky_landscape.inc
et postez le sur la liste d"email Terraform. Essayez d'être consistant
avec l'arrangement du nom. La plupart des fichiers sont nommés avec
le texte situation_courtedescription*.*. Si vous contribuez avec des fichiers,
il serait bien d'envoyer aussi au moins un exemple de fichier *.pov qui
les utilise. Une fois qu'il y aura une multitude de fichiers, il sera possible
de les mélanger et de les réarranger à volonté.
Imaginez d'être capable de rendre un paysage martien avec un ciel
terrestre aussi bien qu'une lune supplémentaire avec un anneau autour.
Cool...
3: Comment le monde est déterminé
Les sphère céleste, soleil et lune sont centrés autour
de l'origine <0, 0, 0>. Générallement la distance de l'origine
jusqu'à, disons, un soleil, devrait toujours être proportionnelle
a vlength (<TF_X_SCALE, TF_Y_SCALE, TF_Z_SCALE>). Vous pouvez toujours
déjouer les règles si un corps céleste à, disons,
un chemin elleptique, mais essayez toujours de faire l'ellipse proportionnelle
à la valeur évoquée précédemment. Sinon,
changer l'échelle dans Terraform peut causer des problèmes
de mesure.
3.1: Où se trouve la terre et l'eau
La terre est centrée sur le plan XZ depuis <-TF_X_SCALE / 2.0,
0.0, -TF_Z_SCALE / 2.0> jusqu'à <TF_X_SCALE / 2.0, TF_Y_SCALE,
TF_Z_SCALE / 2.0>. En relation avec l'actuel 'height field' Targa, le coin
bas-gauche du fichier *.tga correspond à <-TF_X_SCALE /
2.0, y, -TF_Z_SCALE / 2.0>. Le plancher océanique est à y=0,
le niveau de le mer à y=(TF_Y_SCALE * TF_WATER_LEVEL), et
le pic le plus haut à y=TF_Y_SCALE.
3.2: Où est le texture de la terre
Si vous utilisez une 'texture_map' pour la terre ( par exemple faites #declare
TF_LANDSCAPE_TEXTURE = texture { texture_map { ... } }), 0.0 texture au
niveau du fond de la mer, TF_WATER_LEVEL texture au niveau de la mer, et
1.0 texture au niveau du plus haut pic ) voyez earth_green_landscape.inc
pour comprendre comment étirer la texture du paysage pour garder
le niveau de la mer à la bonne position. Il utilise aussi un truc
pour réduire l'apparence du recouvrement de la texture en appliquant
la texture de 0.0 à 1.0 et puis en la multipliant ensuite par 10.0.
Ce serait bien si POV-Ray avait un motif qui ne comportait pas une
telle fonction de répétition/réflection mais il n'a
pas.
4: Créer vos propres modèles
Premièrement créez un fichier *.pov et copier dedans ces
lignes :
// Fichier inclus standard POV-Ray.
#include "colors.inc"
#include "skies.inc"
// Met tous les paramètres non assignés à leur valeur par défaut.
#include "defaults.inc"
// Impose la texture par défaut.
#declare TF_LANDSCAPE_TEXTURE = texture
{
pigment { color rgb <0.8, 0.4, 0.1> }
}
// Ajoute un ciel terrestre, soleil, lune et étoiles.
#include "earth_sky.inc"
// Crée l'eau.
#include "earth_water.inc"
// Crée la terre et la caméra.
#include "generic_land.inc"
Notez que vous devez déclarer TF_LANDSCAPE_TEXTURE après
#including defaults.inc. Ceci car votre texture peut dépendre
du paramètre TF_WATER_LEVEL. Ensuite copiez ce fichier *.pov dans
votre répertoire /usr/share/terraform/themes. Générez
un terrain et rendez le en utilisant ce fichier modèle. Vous pouvez
sélectionner votre thème depuis le menu déroulant
Edition > Options > POV-Ray > Terrain thème. Vous pouvez modifier
la texture pour quelle convienne à votre goût. Jouez un peu
avec. Si vous vous sentez à l'aise à créer votre propre
texture, essayez quelque chose de plus difficile, tel que dessiner un ciel
martien. Essayez d'utiliser les fichiers qui viennent avec Treraform comme
un point de départ pour faire les votres.
5: Conclusion
Ce n'est pas difficile de créer des textures de terrain de base.
Une fois que vous vous serez fait la main sur les fichiers disponibles
et que vous aurez compris comment les utiliser, vous pourrez les modifier
et créer vos propres textures de terrain et même votre propre
monde. Mais, par dessus tout, soyez créatif et prenez du plaisir.