II - Paramètres et opérateurs scalaires

1) Comment utiliser les opérateurs scalaires pour changer les paramètres

Bon, laissons de côté les macros, pour l'instant.

Si vous avez lu mon premier tutoriel sur World Machine, vous vous souvenez peut-être que j'avais évoqué trois types de ports, pour les modules :

-Les entrées (à gauche du module)
-Les sorties (à droite du module)
-Et un troisième type de port, qui permettent de configurer les paramètres des modules. J'avais dit que pour une première utilisation, on n'allait pas s'en servir.
Eh bien le moment est venu !
(Si vous ne voyez pas ces ports, allez dans le menu "Options", puis choisissez "Program Options" et cochez la case "Show parameter inputs").

D'habitude, vous double-cliquez sur un module, et c'est là que vous modifiez les paramètres, non ? Il existe une autre méthode, qui consiste à utiliser ces ports.

Prenons le module "Terrace". Double-cliquez sur celui-ci pour obtenir sa fenêtre de configuration :

Vous voyez qu'il y a trois types de paramètres :
- La méthode de terrasse.
- La forme des terrasses (Terrace Shape), nombre compris entre 0.063 et 0.938.
- Le nombre de terraces, compris entre 2 et 16.

Maintenant, imaginez que vous puissiez indiquer à WM la valeur d'un de ces trois paramètres à partir d'un nombre compris entre 0 et 1. Par exemple, pour le paramètre de la forme des terrasses, si ce nombre est égal à 0, alors la valeur de Terrace Shape sera mise au minimum, soit 0.063. Si ce nombre est égal à 1, la valeur de Terrace Shape sera mise au maximum, soit 0.938. Si ce nombre est égal à 0.5, alors la valeur de Terrace Shape sera mise au milieu, soit 0.5.

Vous avez compris le principe des opérateurs scalaires. Contrairement aux modules classiques, les opérateurs scalaires sont des modules qui ne manipulent non pas un terrain, mais un nombre compris entre 0 et 1.
C'est en reliant ces opérateurs scalaires aux ports des paramètres que vous pourrez configurer les paramètres des modules classiques.

Insérez un module "Terrace" dans votre machine (Heightmap Operators -> Filters -> Terrace, puis clic gauche dans la machine).

Puis, dans le menu "Parameter Operators", choisissez "Scalar Operations", puis "Scalar Generator". Insérez-le dans votre machine comme un module normal. Faites un double clic dessus. La fenêtre qui s'ouvre montre une barre, qui vous permet de choisir un nombre compris entre 0 et 1. Laissez ce nombre à 0 pour l'instant, et appuyez sur OK.
Reliez maintenant le module "Scalar Generator" au module "Terrace", sur le port du haut nommé "Shape" (qui s'occupe, vous l'aurez deviné, de la valeur de "Terrace Shape".
Faites maintenant un double clic sur le module "Terrace". Et là, surprise, la valeur de "Terrace Shape" a été fixée au minimum (en fait, encore moins que le minimum, mais il arrive que quand on utilise cette méthode pour configurer les paramètres, il y ait quelques différences).
Sortez du module "Terrace", retournez dans le module "Scalar Generator" et mettez cette fois la valeur du nombre à 1. Retournez ensuite dans le module "Terrace", et vous remarquez que la valeur de "Terrace Shape" a été mise au maximum (plus que le maximum, mais bon, même remarque).
Retournez dans le module "Scalar Generator". Mettez la valeur du nombre à 0.5, et vous verrez alors que la valeur de "Terrace Shape" a été mise à 0.5 elle aussi, comme prévu. Bien entendu, les valeurs intermédiaires de "Scalar Generator" amènent des valeurs intermédiaires de "Terrace Shape".

Vous remarquerez que quand vous changez la valeur de "Scalar Generator", vous voyez le résultat dans la fenêtre de prévisualisation...

Faites la même expérience avec les autres paramètres :
- Pour le paramètre du nombre de terrasses (port du haut nommé "Number"), une valeur de "Scalar Generator" fixée à 0 amène 2 terrasses, une valeur fixée à 1 en amène 16, etc...
-Pour le paramètre de la méthode utilisée, une valeur comprise entre 0 et 0.5 (exclu) amène la méthode "Simple" (la première méthode disponible), une valeur comprise entre 0.5 et 1 (exclu) amène la méthode "Realism - Sharp" (la deuxième), et une valeur égale à 1 amène la dernière méthode ("Realism - Smooth").

Vous remarquerez aussi qu'un paramètre relié à un opérateur scalaire ne peut plus être changé via la fenêtre de configuration, il faut obligatoirement passer par l'opérateur scalaire.

2) Utilisation avancée des opérateurs scalaires

Bon. Quel intérêt, tout ça ? Vous l'aurez compris, on va se servir de ça pour les macros, mais plus tard.
Vous avez sans doute remarqué qu'il y avait d'autres opérateurs scalaires que "Scalar Generator" ?

Entre autres, il y a le module "Scalar Splitter". Si vous connaissez bien WM, vous savez sans doute qu'il existe un module "Splitter" qui vous permet de dédoubler, tripler (ou plus) le terrain ?
Le module "Scalar Splitter" sert à la même chose. Il vous sert à utiliser sur plusieurs modules le même nombre. Par exemple, si, à l'aide d'un "Scalar Generator", vous choisissez le nombre 0.25, que vous connectez ce "Scalar Generator" à un "Scalar Splitter", vous pourrez connecter chaque sortie du "Scalar Splitter" à un paramètre. Et à chaque fois que vous changerez la valeur de "Scalar Generator", tous les paramètres qui seront reliés au Splitter changeront en même temps :

Dans cet exemple, les sorties de "Scalar Splitter" sont toutes les deux reliées au paramètre "Scale" des modules "Perlin Noise". Ce paramètre s'occupe de changer la taille du terrain généré par le module. En changeant la valeur de "Scalar Generator", la taille de chacun des deux "Perlin Noise" change simultanément. Astuce : vous pouvez changez le nombre de sorties de "Scalar Splitter" en faisant un double clic dessus.

Parlons maintenant des autres opérateurs scalaires :

Scalar Clamp :

Je ne m'en étais jamais servi jusqu'à ce que je fasse ce tutoriel... En gros, il change le nombre généré par le "Scalar Generator", en le replaçant sur une échelle différente. Vous choisissez vous-même un minimum et un maximum, et au lieu d'avoir un nombre compris entre 0 et 1, vous aurez un nombre compris entre le minimum et le maximum que vous aurez choisis. Deux modes possibles pour que le nombre reste dans ces limites :
- Le mode "Rescale". Votre nombre est changé proportionnellement au minimum et au maximum que vous avez définis. Par exemple, si vous avez choisi comme minimum 0.5 et comme maximum 1, et que le nombre de "Scalar Generator" est égal à 0.125, alors le nouveau nombre créé par le "Scalar Clamp" sera 0,5625 (1 moins 0.5, le tout divisé par 8, plus 0.5). Le mode de calcul est le suivant : (Maximum moins minimum) divisé par un certaine valeur, plus le minimum. Du coup (passez au tiret suivant si ça ne vous intéresse pas...), quand le minimum est égal à 0 et le maximum à 1, on a : (1 - 0) / 8 + 0 = 0.125. Quand le minimum est égal à 0.5 et le maximum à 1, on a : (1 - 0.5) / 8 + 0.5 = 0.5625. Le mode Rescale permet de garder le nombre dans la fourchette que vous aurez choisi, mais en le modifiant proportiennellemnt...
- Le mode "Clip" est plus simple à comprendre : Le nombre généré par le "Scalar Generator" n'est pas changé tant qu'il est au dessus du minimum et au dessous du maximum. Sinon, il est ramené aux valeurs "limites". Exemple : Vous avez défini une valeur de 0.25 au "Scalar Generator". Pour "Scalar Clamp", vous avez choisi un minimum de 0.2 et un maximum de 0.7. 0.25 étant supérieur à 0.2, le nombre ne change pas, il est compris entre les limites. Par contre, si vous choisissez un minimum de 0.3, 0.25 est inférieur au minimum, et "Scalar Clamp" ramène ce nombre à 0.3.

 

Scalar Inverter :

Rien de très compliqué dans celui là. Il inverse votre nombre, c'est à dire que si celui-ci est égal à 0, il sera égal à 1, s'il est égal à 1, il sera égal à 0, s'il est égal à 0.2, il sera égal à 0.8, etc...

 

Scalar Arithmetic :

C'est le module que j'utilise le plus. C'est une sorte de calculatrice ! Vous pouvez ajouter, soustraire ou multiplier votre nombre par un autre.
Comment l'utiliser ? Commencez par connecter votre "Scalar Generator" au port de gauche :

Maintenant, double cliquez sur "Scalar Arithmetic" :

Ce module s'occupe de faire interagir deux nombres entre eux.
Le premier nombre est celui que vous connectez au port de gauche (dans cet exemple, c'est le nombre porté par le "Scalar Generator". Moi j'ai choisi 0.125). C'est celui nommé "Current Value" (traduisez "valeur actuelle"). Vous observerez que ce nombre est grisé, ce qui est normal puisque vous ne pouvez le changer qu'avec le "Scalar Generator".
Le second nombre est le nombre nommé "Amount" (quantité). Vous le changez à partir de la barre Amount, mais vous pouvez aussi le définir en connectant un opérateur scalaire sur le port du haut.

Amount va s'ajouter au premier nombre selon l'operation que vous avez choisi : "Add to value" additionne les deux nombres entre eux, "Substract from value" soustrait du premier nombre la valeur de Amount, et "Multiply with value" multiplie les deux nombres entre eux.

A quoi sert "Clipping" ? Cela permet à WM de savoir ce qu'il faut faire lorsque le nombre passe au dessous de 0 ou au dessus de 1.
"Clip", comme pour "Scalar Clamp", force le nombre à rester à zéro s'il passe en dessous (ou à rester à 1 s'il passe au dessus).
"Rollover" est très pratique. Si le nombre passe au dessus de 1, WM y soustrait 1 jusqu'à ce que ce nombre soit à nouveau compris entre 0 et 1. Un exemple ? La valeur du "Scalar Generator" est égale à 0.6, et la valeur de Amount est égale à 0.8. Vous choisissez l'operation "Add to value". Le résultat est alors égal à 1.4, ce qui pose un problème. Avec Rollover, World Machine change ce nombre à 0.4 !

Quel intérêt ? Je m'en sers surtout quand j'ai besoin de manipuler la direction des modules "Gradient", "Displacement" ou "Select Angle". Un des paramètres de ces trois modules est la direction (direction du gradient, direction du déplacement, etc...), qui est un angle compris entre 0 et 360.

Si vous avez compris le principe des opérateurs scalaires, vous avez sûrement deviné qu'en connectant un "Scalar Generator" au paramètre gérant la direction, une valeur de 0 pour le "Scalar generator" amènera un angle de 0 degrés, une valeur de 1 amènera un angle de 360 degrés, une valeur de 0.25 amènera un angle de 90 degrés, une valeur de 0.5 amènera un angle de 180 degrés, etc.

Bon, maintenant, considérons que vous avez deux gradients, et que pour une raison quelconque vous voulez qu'ils soient perpendiculaires entre eux. Pour qu'ils soient perpendiculaires, il faut que la différence de leurs angles soit égale à 90 degrés, non ?

Alors comment faire ? Commencez par faire le montage suivant (Gradient se trouve dans "Heightmap Operators" puis "Generators") :

J'explique le montage : Un "Scalar Generator" est relié à un "Scalar Splitter". Une des sorties du Splitter est reliée au port d'un des gradients, lequel port gère le paramètre de la direction. L'autre sortie du Splitter est reliée à un "Scalar Arithmetic", lui-même relié au port gérant la direction du deuxième gradient.

Ainsi, la direction des deux gradients dépend du "Scalar Generator", non ? Alors comment faire pour que l'un des deux soit perpendiculaire à l'autre ? Il suffit de choisir, dans le module "Scalar Arithmetic", une valeur de 0.25 pour Amount. Ainsi, au nombre porté par le "Scalar Generator" s'ajoute une valeur de 0.25, traduisez : un angle de 90 degrés pour le paramètre auquel les opérateurs scalaires sont reliés.

Mettons que vous choisissiez une valeur de 0.25 pour le "Scalar Generator". Le premier gradient aura donc une direction de 90 degrés. La direction du second gradient sera égale à 0.25 (le nombre du Generator) + 0.25 (le nombre du "Scalar Arithmetic") = 0.5, soit 180 degrés ! Les deux gradients sont donc perpendiculaires, et c'est gagné.

Bon, alors à quoi sert Rollover, du coup ?
Imaginez que la valeur du Generator soit égale à 0.875. Un petit coup d'oeil sur le premier gradient nous montre que ce nombre équivaut à une direction de 315 degrés. Un deuxième coup d'oeil sur le deuxième gradient nous montre que la direction est restée bloquée à son maximum, soit 360 degrés, alors qu'il aurait fallu 315 + 90 = 405 degrés ! Argh mais que faire ?
Une vague réminiscence des notions de maths que vous avez acquises vous parvient alors, et vous vous souvenez qu'on pouvait ajouter ou soustraire 360 à un angle, et ce autant de fois que l'on veut.
Du coup, un angle de 405 degrés correspond à un angle de 405 - 360 = 45 degrés !
Pour WM, vous n'avez qu'à lui faire comprendre ça, et vos deux gradients seront à nouveau perpendiculaires. C'est là que la fonction Rollover intervient : La valeur du Generator était, je le rappelle, à 0.875, et la valeur de Amount à 0.25, soit le total égal à 1.125. Si vous avez bien compris mon explication foireuse ci-dessus, vous savez alors qu'avec Rollover activé, le total redescend à 0.125, soit 45 degrés !
Et voilà, maintenant quel que soit l'angle choisi, les deux gradients resteront perpendiculaires, car quel que soit l'angle du premier, l'angle du second restera dans la fourchette qui va de 0 à 360.

Ainsi s'achève cette partie sur les opérateurs scalaires, et si vous n'êtes toujours pas convaincu de leur intérêt, la partie suivante devrait vous éclairer. Car on va maintenant utiliser les opérateurs scalaires pour les macros !

Page précédente - Page suivante
Page : 1 - 2 - 3 - 4 - 5 - 6