PuceTerragen 2 > Le Node Network

Vous avez sûrement beaucoup entendu parler de cette interface utilisateur proposée par Terragen 2. Les interfaces basées sur les noeuds sont largement utilisées de nos jours, en particulier par les logiciels de graphisme car elles sont puissantes, flexibles et proposent une approche intuitive pour le travail avec des fonctions complexes.

Une chose inhérente aux interfaces basées sur les noeuds est la présentation d'une vue globale du plan de la scène. Si vous savez comment les données circulent dans ce réseau, vous pouvez facilement visualiser la composition d'une scène d'un simple coup d'oeil. Ce seul facteur est un bon argument pour utiliser ce genre d'interface. Dès que vous pourrez contrôler les caractéristiques de la scène depuis cette vue d'ensemble, vous aurez une puissante combinaison d'informations et un contrôle direct sur la scène. L'interface utilisateur est essentiellement déterminée par les caractéristiques de votre scène, et les informations et contrôles sont représentés d'une manière unifiée. Cela permet d'accélérer énormément la création de scènes complexes.

Un réseau de noeuds dans sa forme la plus simple comporte quelques éléments principaux :

  • Un espace de travail - C'est la zone principale dans laquelle vous travaillez. Vos noeuds (aussi appelés modules ou objets) sont placés ici, connectés entre eux, et les sorties de ces noeuds formeront votre scène.
  • 1 ou plusieurs noeuds - Un noeud est un objet (un module) qui exécute une certaine fonction. Il est placé dans l'espace de travail et connecté aux autres modules pour accomplir sa tâche dans le processus de création de la scène. Il peut avoir une ou plusieurs sorties, selon son utilisation. Beaucoup de noeuds ont aussi leurs propres paramètres que vous pouvez ajuster pour contrôler leurs effets sur les données qu'ils créent ou qui les traversent. Les connexions des noeuds forment un réseau de modules.
  • 1 ou plusieurs connexions - Les connexions de noeuds (aussi appelées fils ou connecteurs) permettent aux données de traverser le réseau d'un noeud à un autre. Une connexion est la transmission d'un type de données d'un module à un autre. Chaque noeud exécute une action ou une fonction pour manipuler les données d'une certaine façon, puis transmet le résultat au module suivant. La somme de ces actions permet de créer la scène.

Les Node Lists (Listes de noeuds) et le Node Network (Réseau de noeuds)

Les noeuds, dans TG2, sont affichés dans les Node Lists et dans le Node Network. Par défaut, les deux sont visibles. La Node List se situe en haut à gauche de l'interface utilisateur, et le Node Network est en bas à droite. En général, les changements sont visibles dans les deux vues. Cependant, les relations entre les noeuds sont affichées différemment dans chacune de ces vues.

Le Node Network affiche les noeuds dans des boîtes de différentes couleurs. Les entrées et les sorties sont représentées par des saillies triangulaires en haut et en bas d'un noeud. Les entrées partent des ports situés en haut du module et ressortent par les ports situés en bas. Les connexions sont représentées par de simples lignes de couleur claire.

Le vue du Node Network est souvent plate car presque tous les noeuds sont affichés en même temps, sur le même niveau. Contrairement aux Node Lists, cela inclue les noeuds possédés ou créés par un autre module, les noeuds à l'intérieur des groupes, et les noeuds situés au-dessus d'un autre noeud dans une branche de réseau. Les exceptions sont les noeuds Object et Population. Les noeuds Object contiennent d'autres noeuds, qui sont contenus par le noeud parent. Vous pouvez cliquer-droit sur un noeud Object et afficher le réseau interne (Internal Network) pour voir tous les noeuds contenus par le module Object. Cela affichera une vue vous présentant seulement les noeuds situés à l'intérieur d'un noeud Object. Cliquez-droit sur une zone vide de la zone de travail et sélectionnez Up One Level pour revenir à la vue précédente. Vous pouvez aussi utiliser le bouton Up Level qui apparaît en haut de la liste de signets située sur la gauche quand vous êtes dans un réseau interne.

La Node List est conçue pour afficher une vue simplifiée des modules dans une fenêtre. L'affichage est simplement une liste ordonnée, qui montre l'ordre dans lequel les modules sont exécutés : en général, un module situé au-dessus d'un autre, agit comme une source pour le module qui suit. Dans la plupart des cas, les noeuds affichés sont aussi limités à ceux d'un certain type. Par exemple, dans la fenêtre Objects, aucune texture assignée à vos objets ne sera affichée car ce ne sont pas des modules Objects. Les connexions de réseau ne sont pas affichées directement dans la Node List mais sont représentées par la hiérarchie des listes. Il existe deux types de vues pour les Node Lists. Ces vues affichent des informations différentes. Chaque vue est spécifique à une fenêtre particulière.

Les fenêtres Objects, Atmosphere, Lightning, Camera et Renderer utilisent une vue qui n'affiche pas les branchements du réseau mais plutôt les modules internes. Cette vue n'indente pas les modules dans la liste mais utilise des slashs (/) pour représenter la profondeur du noeud dans le réseau. Au niveau le plus haut, tous les noeuds sont précédés d'un simple /, par exemple /Atmosphere01. Chaque sous-niveau est représenté par un / supplémentaire, comme la représentation des répertoires et sous-répertoires dans Windows. Par exemple, /Pop Obj reader 01/Obj reader 01 affiche un noeud Object Reader appelé Obj reader01 dans un noeud Population appelé Pop Obj reader 01.

Les fenêtres Terrain, Shader et Node Network utilisent toutes une vue indentée. Cela permet un affichage plus direct des relations entre les noeuds dans les fenêtres où les branchements et la complexité du réseau sont importants. La vue de base affiche les noeuds connectés par des lignes pointillées. Par défaut, seul le niveau le plus haut du module est visible. Les noeuds qui ont des connexions attachées à une de leurs entrées, ou qui contiennent d'autres modules (comme les noeuds Objects), ont un symbole + à gauche de leur nom qui peut être cliqué pour dérouler la vue du niveau suivant. Les différents niveaux du réseau sont indentés pour représenter leurs profondeurs, dans une branche du réseau, ou à l'intérieur d'un autre noeud. Tous les noeuds sont connectés par des lignes pointillées qui suivent et illustrent la hiérarchie du réseau. Là aussi, cette vue est similaire à l'interface de Windows Explorer.

Circulation des données dans le réseau

En général, les données circulent dans le réseau du haut vers le bas - d'un port de sortie vers un port d'entrée, à travers un noeud, puis à nouveau à travers un port de sortie, etc. Les données semblent suivre un seul chemin principal vers chaque entrée du noeud final qui interprète les données. Dans la plupart des cas, c'est le noeud objet Planet. Les noeuds Planet ont deux entrées principales : Surface shader et Atmosphere shader. Tous les autres noeuds qui décrivent les éléments qui composent la planète sont connectés à ces deux entrées.

Chemins Principaux du Node Network
Les chemins de données principaux

Il y a des noeuds qui ne sont pas connectés au noeud Planet et d'autres qui ne sont connectés à aucun autre noeud. Ces modules génèrent des éléments particuliers de la scène finale, comme par exemple, la caméra et l'éclairage. Les noeuds Camera ne reçoivent - en théorie - aucune entrée. Leur seule sortie se connecte à un noeud Render pour produire l'image finale. Les noeuds Light (Eclairage) n'ont pas besoin d'être connectés à un autre module, eux non plus. Ils affectent de façon indirecte l'apparence finale de la plupart des noeuds du réseau. Cela montre clairement la différence entre une interaction d'une donnée directe - qui est utilisée par exemple et reliant plusieurs noeuds entre eux pour créer des textures de surface et de formes - et une interaction de rendu indirecte, comme le noeud Camera qui agit sur le champ de vision, l'exposition... pour interpréter les autres noeuds de la scène comme si ils étaient vus à travers une caméra virtuelle.

Alors que la plupart des noeuds génèrent simplement des données, leur appliquent des opérations ou les transmettent au noeud suivant, certains noeuds du réseau ont un statut spécial. Ces noeuds agissent directement sur des éléments spécifiques de la scène finale, pour, pour exemple, définir la caméra, ou l'éclairage. Dans quelques cas, ils n'ont aucune entrée, comme les modules Camera, Background et Lightning. La plupart des noeuds, même ceux qui génèrent des données, ont une entrée, comme par exemple, un blend shader. Dans le cas de ces noeuds particuliers, il leur manque leurs ports Entrées car ils génèrent toutes les données.

La plupart des données circulent dans les entrées et sorties principales des noeuds du réseau, mais il existe aussi des entrées secondaires sur certains noeuds. Chaque noeud qui se connecte sur des entrées secondaires sera une branche du réseau. C'est souvent le cas avec les couches de surface et leurs couches enfants. Les branches sont formées d'un ou plusieurs noeuds qui se connecte(nt) à une entrée non-principale qui est elle-même connectée au chemin de données principal.

Les branches du réseau
Les branches du réseau

Naviguer dans le réseau de noeuds

La navigation de base dans le réseau de noeuds est similaire aux mouvements de caméra. Maintenez la touche Alt enfoncée et cliquez avec le bouton gauche ou le bouton droit de la souris, puis faites glisser la souris pour naviguer dans l'espace de travail. C'est comme faire glisser un véritable espace de travail dans la fenêtre : glissez la souris vers le bas pour faire bouger le réseau vers le bas, vers le haut pour le faire bouger vers le haut. La combinaison Alt+bouton du milieu (ou les boutons gauche et droit ensemble) contrôle le zoom : vers le bas pour un zoom avant, vers le haut pour un zoom arrière.

Quand vous cliquez sur un module dans la Node List, la vue du réseau de noeuds bougera automatiquement pour se positionner sur le module sélectionné. Les noeuds peuvent aussi être regroupés en utilisant des noeuds spéciaux Group. Un noeud Group a très peu de propriétés - il peut être associé à un des groupes définis pas défaut, il peut être affiché ou non dans la liste de signets, et il peut avoir un nom et une couleur unique. Les noeuds de groupe sont simplement utilisés pour regrouper d'autre noeuds. Le réseau fonctionnera de la même façon si des noeuds sont rassemblés dans un groupe. C'est simplement une aide à la navigation et à l'organisation du réseau.

Pour créer un noeud Group, cliquez-droit sur une zone vide de la fenêtre du réseau et dans le menu qui s'affiche, choisissez l'option Create Other puis Group. Votre nouveau noeud de groupe sera créé avec un nom, une taille et une couleur par défaut. Vous pouvez cliquer sur la barre de titre d'un module de groupe pour afficher ses réglages comme son nom ou sa couleur. Vous pouvez retailler le groupe en faisant glisser une des bordures ou un de ses coins, comme une fenêtre normale. Pour ajouter des noeuds à un groupe, faites les glisser sur le noeud de groupe puis cliquez-droit sur la barre de titre du groupe et choisissez Group: Capture Nodes. La fonction Group: Release Nodes fait exactement le contraire : elle retire tous les noeuds associés au groupe. Les groupes peuvent être activés ou désactivés comme des noeuds normaux. Utiliser des groupes et les activer ou les désactiver peut être un bon moyen de tester individuellement les divers effets créés par les branches du réseau.

Le long du côté gauche de la fenêtre de réseau se tient la liste des signets. Chacun de ces signets est associé à un groupe de noeuds. Par défaut, un groupe est créé pour chaque élément essentiel de la scène, qui correspond à chaque type de couches : objets, terrain, shaders, etc... Cliquer sur ces signets fera bouger la vue du réseau sur le groupe correspondant. Vous pouvez ajouter vos propres signets à chaque groupe que vous créez. Ces signets seront particulièrement utiles pour créer des scènes plus complexes, quand vous serez plus à l'aise avec l'utilisation du réseau de noeuds.

C'était une brève description du Node Network (réseau de noeuds). Plus de détails vous seront donnés prochainement dans le Guide de l'Utilisateur.