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.
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
- Ouvrez le Material editor depuis la barre de gauche.
- 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à.
- Ajoutez des nœuds et reliez-les, des entrées jusqu'au nœud de sortie.
- 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 :
| Groupe | Ce que vous y trouvez |
|---|---|
| Inputs | les UV, la normale de la surface, le temps, la position, les textures, la copie en cours de dessin |
| Constants | des nombres et des couleurs fixes que vous saisissez |
| Math | des opérations et des courbes sur des nombres simples |
| Vectors | créer, décomposer, mélanger et faire tourner des vecteurs et des couleurs |
| Lighting | des termes d'éclairage que vous façonnez vous-même |
| Post-processing | des nœuds qui lisent l'image rendue ; voir effets plein écran |
| Output | l'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 :
| Sortie | Signification |
|---|---|
baseColor | la couleur de la surface |
metallic | 0 pour un non-métal, 1 pour du métal nu ; rarement une valeur entre les deux |
roughness | 0 est lisse comme un miroir, 1 est complètement mat |
normal | votre propre normale, pour ajouter du relief à la surface |
emissive | la lumière que la surface émet elle-même |
alpha | la transparence |
clearcoat · clearcoatRoughness | une couche de vernis transparent par-dessus |
ior · transmission · thickness | la 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 :
instanceIdindique quelle copie est en cours de dessin ;instanceColordonne la teinte de cette copie.
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 :
- Ouvrez Space settings.
- Cliquez sur + Add feature et choisissez Post-processing, si la section n'est pas encore là.
- 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.
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 voulez | Faites ceci |
|---|---|
| quelque chose qui s'anime tout seul | utilisez l'entrée time à l'intérieur du graphe pour une pulsation, un défilement ou un scintillement |
| quelque chose qui réagit au jeu | utilisez 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.