PuceTerragen 2 > Le Surface Mapping

Introduction

Dans Terragen 2, le Surface Mapping (le texturage) est réalisé à l'aide d'un ou plusieurs shaders - des noeuds qui affectent la surface des objets et des terrains en contrôlant la couleur, le déplacement et d'autres paramètres. Le texturage de base se concentre sur un petit nombre de shaders, et essentiellement sur les noeuds Surface Layer et Fractal Breakup. Vous pouvez aussi créer beaucoup d'effets aussi spectaculaires les uns que les autres en utilisant la puissance du réseau de noeuds (Node Network). Pour l'instant, nous parlerons des bases puis vous pourrez vous rendre dans la section Advanced Techniques (quand elle sera disponible) pour en apprendre davantage.

Si vous ne l'avez pas encore fait, cliquez sur l'onglet Shaders pour commencer.

La liste des shaders (Shader List)

Sur la gauche, vous pouvez voir la Shader List contenant les noeuds shaders utilisés actuellement dans l'ordre dans lequel ils sont calculés. Les noeuds en tête de liste forment la base de votre surface et ils sont recouverts par les noeuds situés plus bas dans la liste (selon les réglages de distribution). Ce système fonctionne de la même façon que celui de Terragen 0.9. Les couches filles sont aussi présentes et fonctionnent aussi comme celles de Terragen 0.9 : les couvertures des noeuds enfants dépendent des couvertures des noeuds parents, mais elles recouvrent quand même les noeuds parents.

En haut de la Shader List, des boutons permettent d'ajouter une couche standard ou une couche fille. En cliquant sur Add Layer, choisissez l'option que vous utiliserez le plus souvent : Surface Layer. Un sous-menu affiche les shaders de surface (Surface Shaders) que vous pouvez utiliser. Les couches filles ne peuvent être ajoutées que quand un noeud parent approprié est sélectionné, en général une Surface Layer. Certains noeuds shaders n'acceptent pas de couches filles. Lisez la documentation Node Reference pour plus de détails sur les Surface Shaders supplémentaires et leurs compatibilités avec les couches filles.

Les couches les plus hautes dans la liste sont recouvertes par les couches situées plus bas, il serait donc utile d'avoir des fonctions pour organiser et manipuler chaque couche. Les boutons Move, situés en bas de la liste, permettent de bouger le noeud sélectionné vers le haut ou vers le bas. Vous pouvez aussi supprimer un noeud en appuyant sur la touche Suppr de votre clavier. Vous ne pouvez sélectionner qu'un noeud à la fois.

Comme dans les autres listes de noeuds, cliquer sur un noeud de la Shader List affichera ses réglages en bas à gauche. De plus, comme pour les couches Terrain et Atmosphere, un petit aperçu en temps réel du shader est affiché sur la droite de la liste de noeuds pour chaque noeud sélectionné. Cet aperçu se présente sous la forme d'un simple carré, mais les contrôles standards de la caméra peuvent être utilisés pour ajuster votre champ de vision. Cela peut être utile quand vous faites des tests avec les déplacements (Displacements), par exemple.

Le noeud Base Colours

En regardant le contenu de la liste de shaders (Shader List), vous remarquerez qu'on commence avec un simple shader qui est logiquement appelé Base colours. Ce noeud formera la base de la plupart de vos systèmes de surfaces, commme la couche Surface Map de Terragen 0.9 qui formait la base de chaque arborescence de surfaces. Cependant, contrairement à la couche de base de Terragen 0.9, le noeud Base colours a des paramètres un peu différents d'une couche de surface normale. Cliquez sur le noeud Base colours pour afficher ses réglages et détaillons son fonctionnement.

En haut, on trouve les contrôles habituels pour activer/désactiver le noeud et changer son nom (note : le nom doit être unique). En-dessous, on trouve le paramètre Seed (Graine) qu'on ne trouve pas dans les couches de surfaces standard (mais qui est présent dans beaucoup d'autres noeuds). La valeur de la graine (Seed) représente l'état actuel d'une fonction de bruit. Ces fonctions sont utilisées partout dans Terragen pour générer des détails aléatoires mais réalistes pour toutes sortes de choses, des terrains jusqu'aux nuages. Une valeur de graine spécifique produira toujours les mêmes résultats dans un noeud donné à condition que les autres réglages soient identiques. Vous pouvez utiliser le bouton Random Seed (Graine Aléatoire) pour donner à votre fonction de bruit fractal un aspect aléatoire différent.

En bas, vous trouverez d'autres réglages standards qui sont associés à la fonction Blend by shader. Les Blend shaders fonctionnent de la même façon que les masques, même si certaines choses les différencient. Brièvement, pour utiliser un Blend shader, cochez simplement la checkbox Blend by shader, puis tapez un nom de shader existant dans le champ de saisie, à droite. Sinon, vous pouvez sélectionner un noeud depuis une liste en cliquant sur le bouton situé à droite du champ de saisie. Dès qu'un Blend shader est connecté, vous pouvez voir que la sortie de votre noeud actuel est maintenant contrôlée par l'entrée du Blend shader. L'effet sera différent selon le type de noeud et le Blend shader que vous aurez sélectionnés. Vous pouvez aussi inverser le Blend shader ou utiliser la fonction Fit blendshader to this pour un meilleur contrôle. Les Blend shaders et ces réglages supplémentaires sont détaillés dans les sections Advanced Techniques.

Voyons maintenant plus en détails chaque onglet de réglages. L'onglet Scale est sélectionné par défaut et vous trouverez ici plusieurs contrôles liés à l'échelle. L'échelle contrôle la taille globale et la distribution des motifs dans une couche de surface. Ces motifs sont générés par un shader de bruit fractal qui est interne au noeud Base colours. Le paramètre Feature scale détermine l'échelle globale moyenne des aspérités dans le shader. C'est le paramètre qui a l'effet le plus marqué sur l'échelle. Le Lead-in scale contrôle essentiellement la taille des plus grandes aspérités qui seront présentes dans la sortie du shader, et logiquement, le Smallest scale détermine la taille des plus petites aspérités. Tous ces paramètres sont mesurés en mètres, l'unité de mesure par défaut dans Terragen 2.

L'intervalle entre le Lead-in scale et le Smallest scale déterminera le nombre d'octaves de bruit qui seront générées. Cette valeur peut être changée directement si vous avez une idée précise de l'intervalle que vous souhaitez, mais en général, il est plus facile d'ajuster les autres valeurs d'échelle. Notez cependant que plus vos noeuds de shaders auront d'octaves à générer, plus vos scènes seront longues à calculer. Cet effet n'est pas flagrant sur un petit nombre de shaders mais peut rapidement s'amplifier surtout si vous utilisez les displacements.

L'onglet Color est l'endroit où la plupart des fonctionnalités réelles du noeud Base colours sont réglées. Un des aspects les plus importants d'une couche de surface est, bien sûr, sa couleur. Ici, vous avez deux couleurs avec lesquelles vous pouvez travailler : une couleur "haute" (high color) et une couleur "basse" (low color). Elles ne correspondent pas à l'altitude du terrain, alors vous pouvez les appeler "Couleur 1" et "Couleur 2" pour éviter toute confusion. Le noeud Base colours utilise deux couleurs pour apporter plus de contraste et de variations à la surface map par défaut et donner ainsi plus d'intérêt à votre couche de surface de base. Les contrôles de cet onglet Color règlent la distribution et le mélange (blending) de ces deux couleurs, ils définissent donc l'aspect le plus significatif d'une surface : sa couleur.

Essayez de décocher une des deux checkbox Apply color pour voir la scène avec une seule couleur. Vous remarquerez que le gris a l'effet le plus visible et que cette seule couche garde quelques zones sombres même avec la couleur sombre désactivée. Cela est dû aux fonctions internes de bruit fractal dont nous avons parlé lors du détail de l'onglet Scale.

Assurez-vous d'avoir les deux couleurs activées, nous allons faire quelques tests. Premièrement, essayez de bouger le curseur correspondant au paramètre high color. Vous verrez un effet immédiat sur l'échantillon de couleur à droite. Ce curseur sert à contrôler la luminosité globale de la couleur. Pour choisir une couleur, cliquez simplement sur l'échantillon, situé à droite, pour afficher la palette de couleurs. Choisissez votre couleur et cliquez sur OK. Notez que chaque modification de luminosité effectuée avec le curseur de la palette de couleurs sera répercutée sur le curseur de la couleur que vous aurez choisie.

Essayez plusieurs couleurs pour les deux paramètres (high color et low color). Vous devriez maintenant avoir une idée assez précise de la façon dont ces couleurs se mélangent en jetant un oeil au petit aperçu du shader, à droite, ou dans la fenêtre 3D Preview (si vous n'avez pas encore bougé la caméra). Comme vous pouvez le voir, le réglage des couleurs est assez facile et vous pourrez rapidement créer une bonne base pour votre surface.

Le Color contrast permet de contrôler le contraste entre les deux couleurs que vous avez sélectionnées. Notez que si une couleur est désactivée, le Color contrast contrôlera le contraste entre la couleur encore active et une couleur noire. La couleur noire par défaut aura la même distribution que le couleur désactivée.

Le paramètre Color offset règle la quantité de chaque couleur dans la sortie finale du noeud Base colours. La valeur 0 par défaut est au milieu, signifiant qu'aucune couleur n'est favorisée. Bouger le curseur sur la gauche (dans les valeurs négatives) favorisera la couleur basse (low), alors qu'un réglage vers la droite (dans les valeurs positives) favorisera la couleur haute (high). Cela permet de contrôler la quantité de chacune des couleurs par rapport à l'autre.

Color roughness contrôle le niveau d'approximation utilisé dans le mélange des deux couleurs. Une valeur élevée donnera un mélange faisant plus ressortir les pixels de chaque couleur. Une valeur faible permettra un mélange plus doux et modéré. Ce paramètre dépend énormément des valeurs de Contrast et de Scale.

Les checkbox Clamp vous permettent de contrôler la façon dont Terragen manipule les valeurs plus grandes que 1 ou plus basses que 0. La signification de telles valeurs est détaillée dans les sections Advanced Techniques. Pour l'instant, sachez que vous pouvez réaliser certains effets en utilisant des valeurs de couleurs situées en dehors de l'intervalle [0-1]. Normalement, vous n'aurez pas à utiliser ces paramètres pour une scène basique, vous pouvez donc laisser les Clamp activés, ce qui forcera les valeurs de couleur à rester dans l'intervalle de valeurs [0-1].

Passons maintenant à l'onglet Displacement, où vous allez pouvoir tester la puissance de Terragen 2 pour ajouter une nouvelle dimension à vos surfaces. Le displacement (déplacement) est une technique qui ajoute une troisième dimension à vos surfaces. C'est encore mieux que le bump mapping, qui interprète les données de couleur entrées comme une profondeur virtuelle et qui ajoute un ombrage pour simuler la 3ème dimension. Le displacement prend la même donnée de couleur et en tire des valeurs 3D qui sont appliquées sur la surface en question, créant des bosses, des pics, et beaucoup d'autres détails. Le displacement peut être utilisé pour créer des formes de tailles très différentes, et en fait, cette fonction est utilisée partout dans Terragen 2 pour créer des terrains, de l'eau et d'autres éléments. Lisez le chapitre Les terrains et l'eau pour plus de précisions.

En haut du panneau Displacement se trouve une simple checkbox qui permet d'activer ou de désactiver le displacement pour le noeud Base colours. Si vous n'utilisez pas le displacement, vous devriez laisser la fonction désactivée sinon, vos temps de calculs seraient augmentés pour rien.

Sur la droite, une liste déroulante contrôle la façon dont le displacement est appliqué à la surface. L'option par défaut est Along Normal : elle déplace la surface vers l'extérieur par rapport à la normale de la surface. La normale est un vecteur tri-dimensionnel perpendiculaire à la surface en un point. Donc si vous avez une montagne et que vous lui appliquez un displacement, le displacement sera perpendiculaire à la surface de la montagne, et non perpendiculaire au sol. Une falaise verticale peut être déplacée directement vers l'extérieur, parallèlement au sol. L'autre option de base est Along Vertical, qui déplace la surface perpendiculairement au sol.

Il existe trois autres options, chacune nécessitant un calcul de normale (computed normal) : Vertical only, Lateral only, et Lateral normalized. Elle permettent seulement un déplacement vertical ou horizontal (par rapport à la normale du terrain), ou un déplacement latéral normalisé. La normale est obtenue par le noeud Compute terrain par défaut, mais dans certains cas (comme les displacements extrêmes), vous devrez recalculer la normale. Dans ces cas, vous devrez utiliser le noeud Compute normal. Davantage d'informations sur ces noeuds et leurs utlisations sont disponibles dans la section Advanced Techniques.

Le paramètre Displacement amplitude est le plus important. Il contrôle le niveau de déplacement de la surface, ou plutôt la hauteur des aspérités. La taille actuelle des aspérités est contrôlée par l'échelle de la fonction de déplacement, dans ce cas, par l'onglet Scale du noeud Base colours. L'amplitude est mesurée en mètres, l'unité de mesure par défaut dans Terragen 2. Par défaut, cette valeur est de 1, ce qui est à peine visible.

Cochez la chekbox Apply displacement et essayez d'augmenter l'amplitude à environ 100 pour voir l'effet du déplacement sur votre terrain. Si les autres réglages d'échelle ont leurs valeurs par défaut, vous devriez voir une surface très accidentée sur un terrain plat. Notez que c'est entièrement en trois dimensions. Vous pouvez approcher votre caméra près de ces bosses si vous le désirez, pour vérifier ! Les valeurs dépendent beaucoup de l'échelle que vous avez définie, mais en général, la valeur d'amplitude n'aura pas besoin de dépasser la valeur du paramètre Feature scale, elle sera souvent en-dessous.

Le Displacement offset contrôle un simple excentrage (offset) positif ou négatif à partir duquel le displacement sera appliqué. Normalement, le displacement utilise les données de couleur en entrée pour déterminer la quantité de déplacement d'une surface dans une zone donnée : la couleur noire indique aucun déplacement et le blanc indique un déplacement maximum (la valeur d'amplitude). Un excentrage positif fera commencer le displacement à partir de cette valeur, et non à partir de la surface d'origine. Pour obtenir des bosses et des déclivités à partir de votre déplacement (avec des valeurs positives et négatives), vous pouvez utilisez un excentrage négatif, ce qui aura pour effet de faire commencer le déplacement depuis un point sous ou à l'intérieur de la surface de base permettant ainsi à la couleur sombre (noire) de représenter le déplacement vers l'intérieur et à la couleur claire (blanche) de représenter le déplacement vers l'extérieur. La couleur grise est neutre et représente aucun déplacement.

Le Displacement roughness est similaire au paramètre Roughness de l'onglet Color. Il contrôle la dureté du déplacement. Ce paramètre fonctionne avec le Displacement spike limit, qui détermine la quantité de pics et de variations et la dureté du déplacement. Des valeurs basses donnent un displacement avec moins de pics et d'aspérités.

Vous pouvez ignorer les autres réglages de l'onglet Displacement, pour l'instant. Ils sont cependant décrits en détails dans la documentation Node Reference.

L'onglet Tweak Noise présente, lui aussi, des réglages puissants. Ici, vous pouvez directement manipuler la forme et les caractéristiques de la fonction de bruit qui contrôle le mélange des couleurs et le displacement.

Détaillons le Noise flavour (le type de bruit utilisé). Vous avez le choix entre :

  • Perlin : Une fonction de bruit Perlin standard qui produit des motifs qui ressemblent à des nuages.
  • Perlin Billows : Une variation de bruit Perlin qui produit des formes plus bosselées, comme des nuages de type cumulus ou des choux-fleurs.
  • Perlin Ridges : Une fonction souvent utilisée qui ressemble à des chaînes de montagnes, des réseaux fluviaux ou des arcs électriques.
  • Perlin Mix 1 et Perlin Mix 2 : Ce sont des mélanges d'un bruit Perlin Standard et d'une des deux autres variations de bruit Perlin.

La paramètre Noise variation contrôle la force et l'effet des variations de la fonction de bruit. Des valeurs hautes produisent de grandes zones de variations similaires, avec un contraste haut ou bas, un aspect peu commun pour une fonction de bruit Perlin. Des valeurs basses produisent des sorties plus communes avec des variations plus régulières.

Les méthodes de variation (Variation method) sont les différentes façons de contrôler ces variations. La meilleure façon de comprendre comment elles fonctionnent est de faire des tests avec chacune d'elles.

Buoyancy from variation détermine le contraste des zones de variation. Avec de hautes valeurs de variation, des valeurs négatives de Buoyancy assombrira une moitié de l'intervalle du bruit de sortie et éclaircira l'autre moitié. Des valeurs positives donneront l'effet inverse. Des valeurs intermédiaires sont équilibrées. Avec des valeurs basses de variation, ce paramétre agit simplement sur le contraste.

Le paramètre Clumping of variation a un effet assez subtil. En fait, il fait ce que son nom indique : il contrôle la façon dont les zones de variation se rassemblent pour former des paquets. De hautes valeurs donneront de grandes zones de valeurs homogènes.

Pour finir, nous avons le Noise stretch values. Ce sont de simples valeurs numériques. Elles sont utiles pour changer les relations de chaque dimensions du bruit généré. Par exemple, si vous voulez créer de grandes strates étirées sur votre texture, vous devrez augmenter les valeurs X ou Z, et ainsi étirer votre fonction de bruit le long de ces axes. Comme les autres dimensions, X et Z sont les axes du terrain (parallèles au terrain) alors que l'axe Y est perpendiculaire au terrain et indique l'altitude.

Enfin, nous atteignons l'onglet Warping. Pour commencer, nous avons la fonction Distort by normal, un réglage spécifique qui applique un effet de distortion à la fonction de bruit par rapport à la normale du terrain (Les normales du terrain sont évoquées plus haut dans ce chapitre ainsi que dans la section Advanced Techniques). Cette distortion s'applique sur toutes les échelles de la fonction de bruit. Notez qu'elle n'aura virtuellement pas d'effet si votre terrain de base n'a pas de forme (comme un terrain plat, par exemple). Cet effet crée une simple corrélation entre la forme du terrain et la forme de la texture, donc des terrains accidentés donneront des textures accidentées, et des terrains plus doux donneront des textures plus douces.

Le Lead-in warp effect contrôle une autre déformation (warping) de la fonction de bruit à la même échelle que le Lead-in scale. Il y a seulement deux options : 1 Octave Perlin warp et None. 1 Octave Perlin warp déforme la fonction de bruit de base avec une autre fonction de bruit d'une seule octave. Cela ajoute de grands motifs en forme de remous à votre fonction de bruit. Les checkboxes juste en-dessous contrôlent certaines spécificités de cet effet de déformation. Less warp at feature scale permet de préserver les caractéristiques de la fonction de base à l'échelle définie par le paramètre Feature scale, ce qui veut dire que vous aurez des déformations plus grandes, mais les aspérités de petites tailles du terrain seront moins affectées. Allow vertical warp permet de définir si une déformation verticale sera appliquée par la fonction Warp.

Nous avons fait le tour de tous les aspects du noeud Base colours. Heureusement, vous avez fait des tests tout au long de ce chapitre et vous voyez maintenant un peu mieux comment utiliser ces réglages pour réaliser certains effets dans vos scènes. Des tutoriels sur l'utilisation de ces fonctions seront mis à votre disposition plus tard.

Le noeud Surface Layer

Dans Terragen 2, les réglages d'une couche de surface basique (Surface Layer) sont composés de plusieurs parties. Ces parties sont basées autour de la couche de surface elle-même et fournissent la couleur, la luminosité, la distribution et d'autres fonctions, dont certaines peuvent être contrôlées par des shaders externes.

Le Fractal Breakup est une fonction importante qui n'est pas incluse nativement dans le noeud Surface Layer. L'entrée Breakup shader est donc utilisée pour définir un shader pour cette fonction. La fonction Breakup shader donne une forme à la couleur de base et aux autres fonctions intégrées au noeud Surface Layer en modulant la distribution de ces fonctions dans la scène finale et en se basant sur les motifs qu'elles ont générés. Le noeud Fractal Breakup par défaut donne un bruit réaliste et une forme irrégulière à la distribution de la couleur du noeud Surface Layer. Vous pouvez bien sûr relier d'autres noeuds sur l'entrée du Breakup shader pour créer différents effets, mais nous nous concentrerons sur les réglages par défaut, pour l'instant.

Commencez par vous rendre au menu Add Layer et créez un nouveau noeud Surface Layer sur lequel nous allons faire quelques tests. Votre terrain va alors devenir complètement blanc car les réglages par défaut du noeud Surface Layer définissent une surface complètement blanche avec une couverture maximale. Mais on peut facilement changer cela.

Le noeud Surface Layer est composé de deux groupes d'onglets, et des contrôles standards dont nous avons parlé plus haut, à savoir Name et Enable. Le groupe d'onglets supérieur permet le contrôle des caractéristiques de base du noeud Surface Layer, comme la couleur, la luminosité et le déplacement (displacement). Ces trois fonctions peuvent être contrôlées par des shaders externes. Le groupe d'onglets inférieur porte sur la distribution de l'effet du noeud Surface Layer sur le terrain avec des réglages comme l'altitude, la pente (Slope) et le Fractal Breakup.

Commençons avec le groupe supérieur. Premièrement, nous avons l'onglet Colour (couleur), qui est assez simple. On peut activer ou désactiver la couleur avec le paramètre Apply colour. Une couche de surface peut ne pas servir que pour définir la couleur, mais peut être utilisée seulement pour la luminosité ou le déplacement... alors cette option peut donc être utile. En dessous, nous pouvons régler la couleur comme nous l'avons fait pour le noeud Base colours. Le curseur contrôle la luminosité de la couleur choisie tandis que cliquer sur l'échantillon à droite ouvrira la palette de couleurs, vous permettant de choisir une teinte. Pour finir, il y a une place pour définir un shader Color shader externe qui peut être utilisé pour contrôler la couleur de sortie du noeud Surface Layer de façon très efficace. Mais le plus souvent, les réglages inclus dans le noeud Surface Layer suffiront.

Vient ensuite l'onglet Luminosity (Luminosité). Ce paramètre permet de modifier une surface pour qu'elle semble être éclairée "de l'intérieur". Les surfaces ne peuvent pas vraiment émettre de la lumière, elles ne contribuent donc pas à l'éclairage global ou aux calculs des autres éclairages, mais l'apparence de la surface donnera l'impression que la surface est éclairée par elle-même plutôt que par les sources de lumière disponibles. Comme le paramètre Luminosity n'est pas souvent utlisé, il est désactivé par défaut. Les contrôles sont similaires à ceux de l'onglet Colour, sauf que la couleur est appelée Luminosity tint. Il y a aussi un curseur au-dessus pour contrôler la quantité de luminosité. Alors que l'onglet Colour vous permet de régler seulement la luminosité de la couleur, l'onglet Luminosity permet de régler la quantité de luminosité ainsi que la couleur de la luminosité (la teinte de la couleur et sa luminosité). Faites des tests avec les différents paramètres pour comprendre un peu mieux comment ces contrôles interagissent.

La plupart des contrôles de l'onglet Displacement sont similaires à ceux du noeud Base colours, mais il y a quelques différences. La plus importante est que tant que le noeud Surface Layer n'a pas sa propre fonction de bruit interne, il nécessite une fonction de déplacement (Displacement Function) pour voir l'effet du déplacement. Tant qu'une fonction de déplacement est définie ici, les autres réglages n'ont pas d'effet.

Les réglages du paramètre Displacement direction sont les mêmes que ceux du noeud Base colours, nous ne reviendrons pas dessus. Le Displacement multiplier est un multiplicateur des valeurs entrées par la fonction de déplacement et fonctionne un peu comme le paramètre Amplitude. Le paramètre Displacement function a déjà été mentionné. Vous pouvez y connecter n'importe quel noeud qui génère des données concernant la couleur (ou qui génère des sorties pouvant être automatiquement converties en données de couleur) et les utiliser comme fonction de déplacement. Le Displacement offset fonctionne aussi comme le paramètre du même nom du noeud Base colours.

Pour finir, on trouve l'onglet Smoothing (lissage). Il ne comporte que deux paramètres, un pour activer l'effet Smoothing et un pour contrôler sa force. L'effet Smoothing agit sur la couleur et le déplacement du noeud Surface Layer, adoucissant leurs effets sur le terrain. Ce paramètre fonctionne assez bien avec la technique Intersect Underlying dont nous parlerons brièvement plus tard.

Le noeud Fractal Breakup

En cours de rédaction...