Terrain generation and editing

Le travail du terrain peut se faire de diverses manières sous OpenSim. En hébergeant sa propre instance de simulateur le degré de liberté est maximal et cela facilite d’autant plus la conception du terrain.

Le terraforming, littéralement, une science qui étudie la transformation de l’environnement naturel d’une planète (atmosphère, température, topologie de la surface, écologie) afin de la rendre habitable.

Le but du terraforming dans le cas d’un monde virtuel est de tout d’abord fournir une cartographie (appelé map) qui décrit la topographie de la région. Il va sans dire qu’il serait possible de forger cette topographie directement à l’aide d’un viewer en utilisant les outils fournis pour l’édition de terrain. La tâche risque d’être très longue et très compliquée en procédant ainsi. Il est usuel de faire appel à des outils externes pour aider à la génération et au travail de la topographie: générateurs de terrains (fractal ou noise etc.) et éditeur d’images/photos (pour les retouches). OpenSim accepte divers divers formats de cartes: jpeg, png, ou encore Raw (.r32 etc.).

Les générateurs de terrains sont nombreux et variés: simplistes, gratuits, payants, compliqués, limités par la taille du monde ou les spécificités etc.

Voici une liste non exhaustive de quelques-uns d’entre eux:

  • Terragen: Homepage
  • L3DT: Homepage
  • ArtifexTerra: Homepage
  • Lithosphere: Homepage
  • TerraNoise: Homepage
  • et bien d’autres: (se référer à google, attention tout de même, une grande majorité des outils sont payants voir extrêmement limités dans leurs versions de démonstration)

La majorité des outils cités permettent de faire une modélisation intégrale du terrain. C’est le cas le plus facile: il suffit de sculpter son terrain à l’aide des outils fournis puis de procéder à un export “à plat” de la cartographie dans une des formats d’images qu’OpenSim acceptera. Coup de coeur tout de même pour TerraNoise, un petit outil qui permet de générer des cartes à l’aides de processeurs et de branchements entre noeuds. La carte exportée à l’aide de TerraNoise devra peut-être faire l’objet d’une retouche dans un outil de dessin pour lisser et fignoler les contours et les reliefs.

Dans tous les cas il faut garder à l’esprit que la carte doit être constamment testée sous OpenSim tout au long de la modélisation afin de valider la topologie globale du terrain: vérifier la hauteur des reliefs, la taille des montagnes, les versants des pics, les dénivelés de tous types, le fait que les chemins soient praticables sans encombre par un joueur etc..
Ainsi le niveau de détail et de réalisme obtenu ne dépendra que du sculpteur et du temps qu’il passera à l’établissement et au test de sa cartographie.

Dans cet article vont être abordées deux manières de sculpter le terrain : l’édition en sculpture 3D (brièvement) et l’édition par génération de texture à plat avec retouches (plus en détails).

Edition de terrain en sculpture 3D

ArtifexTerra est un éditeur de terrain initialement concu pour le moteur Ogre3D. Il permet de sculpter le terrain directement en trois dimensions à l’aide des outils embarqués. Voici à quoi ressemble son interface:

artifex-ui1

artifex-ui2

L’outil propose 3 palettes pour l’édition:

  • à droite on trouve les réglages généraux pour divers aspect du terraforming: terrain, ciel, lumières, eau, herbe, brouillard, réglages des outils de peinture et de sculpt etc. Garder bien en tête que certains éléments ne pourront être directement exportés vers OpenSim (meshes, ciel, eau, herbe..)
  • à gauche on trouve une palette d’outils de sculpt
  • en bas on trouve les paramètres de chaque outil choisi dans la palette

En calibrant un minimum les outils on peut procéder aux premiers essais d’édition de terrain, le tout dans la fluidité.

artifex-ui3

La navigation dans le monde est très simple, il suffit s’utiliser les touches du curseur (par défaut), le clic gauche de la souris va “ajouter” du relief, le clic droite “en enlever”, le bouton central (indispensable) permet de recentrer la caméra.

Une fois le sculpt aboutit, il suffira de cliquer sur l’icone en forme de disquette (qui figure en bas à gauche) pour sauver les données du terrain. Pour des tests rapides sous OpenSim un export PNG suffira.
Attention toutefois aux dimensions de l’image exportée: elle doit correspondre à la taille de la région définie dans OpenSim. Il faudra donc soit ajuster la taille du monde dans Artifex Terra au préalable en se rendant dans la palette de droite dans la rubrique “terrain”, soit post-processer à l’aide d’un outil de retouche d’image le fichier PNG exporté afin qu’il corresponde.

On pourra charger le terrain de la façon suivante dans OpenSim:

Region (kosmology): terrain load sculptmap.png

Edition de terrain par génération 2D et retouches

Dans ce type de modélisation il n’est pas possible d’avoir une aperçu rapide du résultat en cours en création. Cela complique un peu plus le travail pour un débutant car il doit réussir à se projeter dans les dénivelés de topographie ou alors tester constamment la carte directement sous OpenSim. Par contre, le grand avantage est de pouvoir fine-tuner la cartographie au pixel près, facilement, donc pouvoir agir sur le moindre petit détail.

Pour débuter, il y a deux solutions: commencer à partir d’une page blanche ou alors utiliser un générateur de texture pour avoir une base de travail.
Pour l’exemple et parce que c’est un coup de coeur, TerraNoise sera utilisé afin de générer une base de travail.

Une fois démarré, TerraNoise propose une feuille vierge et un lot d’outils permettant la création de la map.

Aperçu de l’interface de TerraNoise en action

Capture

Les outils de TerraNoise se regroupent en 4 catégories principales, ils sont disponibles sur la palette de gauche:

  • Les générateurs (de texture): Billow, Perlin, Voronoi font parti des plus connus
  • Les modificateurs (de valeurs) qui permettent d’agir sur les valeurs de pixels issus du générateur: valeur absolue, courbe, exponentiel, inversion, terassement etc.
  • Les combinateurs (de valeurs) qui permettent de combiner deux flux (au moins) issus de générateurs et/ou modificateurs.
  • Les autres: selecteurs et outils d’export

Le moteur interne de TerraNoise fonctionne sur le principe de système de noeuds que l’on peut cumuler afin d’obtenir le résulat escompté. Ainsi il est possible de combiner un certains nombres d’outils afin d’obtenir des résultats divers et variés. L’outil une fois placé sur la planche de travail devient un noeud dans le réseau de construction de la texture. Certains noeuds acceptent des entrées (matérialisés par des points sur la gauche de la fenêtre interne au noeud), d’autres des sorties (matérialisés par des points sur la droite), d’autres les deux à la fois, le tout est dépendant du type d’opération fournie par le noeud. Le nombre de points sur les cotés indiquant le nombre d’entrées et de sorties disponibles afin de réaliser l’opération.

Entrées et sorties de noeuds: l’exemple du combinateur

in-out-node
Le combinateur va accepter 2 entrées (sur le schéma “entrée 1” et “entrée 2”) qu’il va traiter via une opération au choix (ici: une addition de pixels) pour former un résultat de sortie. Le résultat de sortir sera visualisé dans l’encadré gris et pourra être étalonné très légèrement grâce au slider qui figure sur la partie de droite. Le combinateur n’est ni un noeud de type initial ni final, il peut donc uniquement être utilisé en noeud intermédiaire.

En résumé, il sera possible de générer une heightmap en utilisant une variétés d’outils très simples et en combinant ceux-ci. Le noeud terminal est généralement l’outil “Export” qui va permettre de sauvegarder la texture du terrain dans un fichier image.
Enfin, ne pas oublier la petite barre de configuration située en haut de l’écran qui va permettre d’ajuster la taille de la texture.

Definition de la taille du rendu de la texture

terra-size

Une bonne pratique est d’exporter son terrain dans une résolution suffisamment grande voir même de taille bien supérieure à la taille escomptée dans le simulateur afin d’avoir un maximum de détails dans l’image et de se laisser une certaine flexiblité lors des retouches. Compter au moins deux fois la taille réelle lors de l’export de TerraNoise.

Une fois la partie génération achevée, l’export réalisé et testé sous OpenSim il est fort probable et même recommandé de faire un passage rapide sous un éditeur d’images pour effectuer des retouches.

N’importe quel outil peut convenir à cette tâche du moment qu’il permet de travailler avec des brosses de divers types, de flouter, d’éclairer ou assombrir des zones ou encore gribouiller les pixels. Compter de nombreuses heures pour obtenir un résultat au petit poil et quelques minutes voir une heure ou deux pour reprendre le plus gros des “défauts” de la carte initialement générée. Un outil tel que GIMP (Homepage) peut parfaitement convenir à cette tâche.

Différence entre le heightmap initalement généré et la version retouchée sous GIMP

difference

Dans l’exemple ci-dessus, les niveaux ont tout d’abord été retouchés afin d’augmenter les contrastes et de bien positionner le niveau de la mer dans OpenSim. Ensuite s’en suit une succession d’éclaircissements, assombrissements pour détacher les reliefs un peu plus amplement. Enfin, une succession de détails tel que le barbouillage pour atténuer les pentes et faire en sorte que le terrain (la pente!) soit praticable par un utilisateur..

Alors,.. à vos brosses !!

kosmo