Aller au contenu principal

Graphes de matériaux

Créez votre propre matériau à partir de nœuds quand les matériaux standard ne suffisent pas. Un graphe permet aussi de réaliser un effet plein écran.

Les types de matériaux standard conviennent à la plupart des projets. Quand ce n'est pas le cas, reliez des nœuds entre eux pour former un graphe : l'éditeur en fait un vrai matériau.

Utilisez un graphe pour ce qu'un matériau fixe ne sait pas faire : une texture qui défile, une dissolution, un hologramme, de l'eau, une couleur qui change selon l'angle de vue, un drapeau qui ondule.

Tous les nœuds et leurs ports sont décrits dans la référence des nœuds de shader : 95 nœuds.

Les matériaux en graphe valent les matériaux intégrés

Un matériau en graphe reçoit le même éclairage que les types intégrés, comme standard, physical et toon, et fonctionne aussi sur mobile.

Créer un graphe de matériau​

  1. Ouvrez le Material editor depuis la barre de gauche.
  2. Cliquez sur + Create material pour partir d'un graphe vide. Ou cliquez sur Clone an existing material pour partir d'une copie d'un matériau que vous avez déjà.
  3. Ajoutez des nœuds et reliez-les, des entrées jusqu'au nœud de sortie.
  4. Appliquez le matériau à vos objets comme n'importe quel autre matériau.

Vous pouvez aussi créer un graphe dans Project assets : faites un clic droit, puis choisissez Create asset → Material graph.

Comment un graphe est construit​

Un graphe va des entrées à la sortie, en passant par des calculs. Les nœuds sont regroupés ainsi :

GroupeCe que vous y trouvez
Inputsles UV, la normale de la surface, le temps, la position, les textures, la copie en cours de dessin
Constantsdes nombres et des couleurs fixes que vous saisissez
Mathdes opérations et des courbes sur des nombres simples
Vectorscréer, décomposer, mélanger et faire tourner des vecteurs et des couleurs
Lightingdes termes d'éclairage que vous façonnez vous-même
Post-processingdes nœuds qui lisent l'image rendue ; voir effets plein écran
Outputl'aspect final de la surface

Les sorties de surface​

Le graphe se termine par le nœud de sortie. Ses entrées décrivent la surface :

SortieSignification
baseColorla couleur de la surface
metallic0 pour un non-métal, 1 pour du métal nu ; rarement une valeur entre les deux
roughness0 est lisse comme un miroir, 1 est complètement mat
normalvotre propre normale, pour ajouter du relief à la surface
emissivela lumière que la surface émet elle-même
alphala transparence
clearcoat · clearcoatRoughnessune couche de vernis transparent par-dessus
ior · transmission · thicknessla lumière qui se courbe en traversant la surface, pour le verre et les liquides

Une sortie que vous ne reliez pas garde sa valeur par défaut. Une sortie que vous n'utilisez pas ne coûte rien.

Donner un aspect différent à chaque copie​

Deux nœuds d'entrée sont faits pour les objets instanciés, c'est-à-dire un objet dessiné de nombreuses fois :

  • instanceId indique quelle copie est en cours de dessin ;
  • instanceColor donne la teinte de cette copie.
Mille copies qui ne se ressemblent pas

Faites passer instanceId dans un hash : chaque copie obtient sa propre teinte, sa propre taille ou son propre rythme d'animation. Une herbe dont chaque brin ondule un peu différemment coûte autant qu'une herbe dont tous les brins ondulent ensemble.

Sur un objet ordinaire, ces deux nœuds donnent des valeurs par défaut sans risque. Le graphe fonctionne donc aussi sur des objets qui ne sont pas instanciés.

Effets plein écran​

Un graphe qui lit l'image rendue devient un effet plein écran appliqué à toute la scène. Il ne se pose pas sur un objet. Utilisez-le pour l'étalonnage des couleurs, un vignettage, un flou ou des lignes de balayage.

Vous n'avez rien à configurer. Dès que le graphe utilise un nœud qui lit l'image, comme screenColor, il devient un effet.

Pour ajouter l'effet :

  1. Ouvrez Space settings.
  2. Cliquez sur + Add feature et choisissez Post-processing, si la section n'est pas encore là.
  3. Cliquez sur + Add effect et choisissez votre graphe.

Plusieurs effets s'appliquent dans l'ordre que vous leur donnez.

Textures et couleur​

Un nœud de texture lit une image de votre projet. Les images en couleur sont converties automatiquement, pour que les calculs se fassent sur les vraies valeurs de couleur.

Marquez les textures de données comme données

Certaines textures contiennent des nombres, pas des couleurs : une carte de rugosité, un masque, une carte de hauteur. Marquez-les comme données, sinon elles subissent une correction des couleurs et vos valeurs sont légèrement faussées. C'est la raison la plus fréquente pour laquelle une carte de rugosité ne ressemble pas du tout à ce qu'elle devrait.

Modifier un matériau en graphe pendant que la scène tourne​

Un script ne peut pas modifier les réglages d'un graphe : les scripts n'ont pas accès au composant du graphe. Les deux besoins les plus courants restent couverts :

Vous voulezFaites ceci
quelque chose qui s'anime tout seulutilisez l'entrée time à l'intérieur du graphe pour une pulsation, un défilement ou un scintillement
quelque chose qui réagit au jeuutilisez plutôt un matériau ordinaire ; un script peut modifier son emissiveIntensity, sa color, son opacity ou sa roughness

Par exemple, une balise qui pulse sans fin est un graphe qui lit time. Une balise qui s'éclaire davantage quand le joueur marque un point est un script qui modifie emissiveIntensity sur un matériau standard.

Conseils​

  • Partez d'un matériau existant. Clone an existing material transforme un matériau standard en graphe. Vous obtenez un point de départ correct et complet. Sur un canevas vide, vous devriez reconstruire un éclairage dont vous n'aviez pas besoin.
  • Surveillez ce que vous ajoutez. Un graphe s'exécute pour chaque pixel, à chaque image. Lire une texture coûte peu ; une boucle coûte cher. Si la fréquence d'images chute après une modification, vérifiez le dernier nœud ajouté.
  • Un graphe pour un seul aspect. Tous les objets qui utilisent le graphe se mettent à jour quand vous le modifiez. Il n'y a donc qu'un seul endroit où corriger l'aspect.

Suivant : Particules — feu, fumée, étincelles et poussière.