Nœuds de shader
95 nœuds dans 7 catégories, pour construire des matériaux avec des nœuds. Pour apprendre à les utiliser, consultez Graphes de matériaux.
Les entrées et les sorties ont l’un de ces quatre types : float est un seul nombre, et vec2, vec3 et vec4 en contiennent deux, trois et quatre. Un vec3 contient une couleur ou une direction. Si vous reliez des ports de tailles différentes, la conversion est faite pour vous quand elle a un sens.
const
Des valeurs fixes que vous saisissez.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
constFloat | Un nombre fixe. | — | out:float |
constVec3 | Trois nombres fixes. | — | out:vec3 |
input
Les valeurs de départ : coordonnées de texture (UV), normale de la surface, temps, textures, et la copie d’un objet en train d’être dessinée.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
cameraDistance | La distance entre ce pixel et la caméra. Pratique pour estomper les choses avec la distance. | — | out:float |
chromaKey — Chroma key | Retire une couleur, par exemple pour rendre un fond vert transparent. | color:vec3, key:vec3, similarity:float, smoothness:float, spill:float | rgba:vec4 |
instanceColor — Instance Color | La teinte de la copie en train d’être dessinée. | — | out:vec3 |
instanceId — Instance ID | La copie d’un objet instancié en train d’être dessinée. Passez cette valeur dans un hachage pour rendre chaque copie différente. | — | out:float |
materialRef — Material | Utilise un autre matériau comme point de départ. | — | out:vec3 |
normal | La direction vers laquelle la surface est tournée. | — | out:vec3 |
normalMap | Applique une texture de normales, qui ajoute du détail de surface sans géométrie supplémentaire. | uv:vec2, strength:float | out:vec3 |
paramColor — Param (color) | Une couleur affichée comme réglage du matériau, que vous pouvez changer sans modifier le graphe. | — | out:vec3 |
paramFloat — Param (float) | Un nombre affiché comme réglage du matériau, que vous pouvez changer sans modifier le graphe. | — | out:float |
position | Le point sur la surface, dans l’espace propre de l’objet. | — | out:vec3 |
sampleLod — Sample Texture LOD | Lit une image à un niveau de flou choisi. Un moyen peu coûteux de l’adoucir. | uv:vec2, lod:float | rgba:vec4 |
screenUv | La position du pixel à l’écran, et non sur la surface. | — | out:vec2 |
texelFetch — Texel Fetch | Lit un pixel exact, sans lissage. | texel:vec2 | rgba:vec4 |
texelSize — Texture Size | La taille d’un pixel d’une texture, pour les effets qui lisent les pixels voisins. | — | size:vec2, texel:vec2 |
texture | Lit une image aux coordonnées données. | uv:vec2 | rgba:vec4 |
time | Les secondes écoulées depuis le démarrage de la scène. Utilisez-le pour tout ce qui bouge. | — | out:float |
triplanar | Projette une texture depuis trois directions à la fois : les formes sans coordonnées de texture, ou avec des coordonnées étirées, gardent un bon aspect. | scale:float, blend:float | rgba:vec4 |
uv | Les coordonnées de texture du pixel en train d’être dessiné. La plupart des motifs commencent ici. | — | out:vec2 |
viewDirection | La direction qui va de la surface vers la caméra. | — | out:vec3 |
worldPosition | Le même point dans l’espace monde. Utilisez-le pour les effets qui restent en place quand un objet bouge. | — | out:vec3 |
light
Un éclairage que vous pouvez façonner vous-même.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
fresnel | Plus fort sur les bords, là où la surface se détourne. Utilisez-le pour un éclairage de contour, un champ de force ou le reflet sur une carrosserie. | power:float, normal:vec3 | out:float |
lit — Lit (scene lights) | L’éclairage standard, pour qu’un graphe sur mesure s’intègre à la scène. | color:vec3, roughness:float, specular:float, normal:vec3 | out:vec3 |
toonLit — Toon (scene lights) | Un éclairage en bandes, pour un rendu de dessin animé. | color:vec3, steps:float, normal:vec3 | out:vec3 |
math
Des calculs sur des nombres simples.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
abs | Retire le signe moins. | x:float | out:float |
add | Additionne. | a:float, b:float | out:float |
atan2 | L’angle vers un point. Utilisez-le pour construire des motifs circulaires (radiaux). | y:float, x:float | out:float |
ceil | Arrondit au supérieur. | x:float | out:float |
clamp | Garde une valeur dans un intervalle. | x:float, min:float, max:float | out:float |
cos | Cosinus. | x:float | out:float |
divide | Divise. | a:float, b:float | out:float |
exp | e à la puissance de l’entrée. | x:float | out:float |
fbm | Du bruit en plusieurs couches, pour les nuages, la fumée, la rouille et le terrain. | uv:vec2, scale:float, octaves:float | out:float |
floor | Arrondit à l’inférieur. | x:float | out:float |
fract | Ne garde que la partie après la virgule. La façon habituelle de faire répéter un motif. | x:float | out:float |
log | Logarithme naturel. | x:float | out:float |
max | La plus grande des deux valeurs. | a:float, b:float | out:float |
min | La plus petite des deux valeurs. | a:float, b:float | out:float |
mix | Mélange deux valeurs. | a:float, b:float, t:float | out:float |
mod | Le reste de la division. Une autre façon de faire boucler une valeur. | x:float, y:float | out:float |
multiply | Multiplie. | a:float, b:float | out:float |
noise | Des valeurs aléatoires douces. Commencez ici pour tout ce qui doit avoir l’air naturel. | uv:vec2, scale:float | out:float |
oneMinus | Inverse une valeur comprise entre 0 et 1 : 0 devient 1, et 1 devient 0. | x:float | out:float |
posterize | Ramène les valeurs à un nombre fixe de niveaux, pour un rendu en bandes. | x:float, steps:float | out:float |
pow | Élève à une puissance. | x:float, e:float | out:float |
remap | Convertit une valeur d’un intervalle à un autre. | x:float, inMin:float, inMax:float, outMin:float, outMax:float | out:float |
round | Arrondit au plus proche. | x:float | out:float |
sign | Donne −1, 0 ou 1. | x:float | out:float |
sin | Sinus. Utilisez-le pour les oscillations, les pulsations et les ondulations. | x:float | out:float |
smoothstep | Un bord doux, avec une transition progressive entre les deux seuils. L’un des nœuds les plus utilisés. | from:float, to:float, x:float | out:float |
sqrt | Racine carrée. | x:float | out:float |
step | Un bord net : 0 sous le seuil, 1 au-dessus. | edge:float, x:float | out:float |
subtract | Soustrait. | a:float, b:float | out:float |
tan | Tangente. | x:float | out:float |
voronoi | Des motifs de cellules, pour des écailles, de la terre craquelée ou un vitrail. | uv:vec2, scale:float | dist:float, cell:float |
output
La fin du graphe : l’aspect final de la surface.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
mrtOutput — Output (MRT) | Écrit plusieurs sorties à la fois, pour les configurations avancées. | color:vec3, alpha:float, color1:vec3, alpha1:float, color2:vec3, alpha2:float, color3:vec3, alpha3:float | — |
output | La fin du graphe : l’aspect final de la surface. | color:vec3, alpha:float, offset:vec3 | — |
surfaceOutput — Output (surface) | Décrit la surface : couleur de base, aspect métallique, rugosité, normale, émission et alpha. | baseColor:vec3, metallic:float, roughness:float, emissive:vec3, normal:vec3, alpha:float, offset:vec3, clearcoat:float, clearcoatRoughness:float, ior:float, transmission:float, thickness:float | — |
post
Des nœuds qui lisent l’image terminée. En utiliser un transforme le graphe en effet plein écran, au lieu d’un matériau de surface.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
chromaticAberration | Décale les canaux de couleur sur les bords, comme un vrai objectif. | uv:vec2, amount:float | out:vec3 |
contrast | Éclaircit les parties claires et assombrit les parties sombres. | color:vec3, amount:float | out:vec3 |
exposure | Rend toute l’image plus claire ou plus sombre. | color:vec3, amount:float | out:vec3 |
grain | Ajoute du grain de pellicule. | color:vec3, intensity:float | out:vec3 |
invert | Inverse les couleurs de l’image. | color:vec3 | out:vec3 |
saturation | Rend les couleurs plus vives ou plus ternes. | color:vec3, amount:float | out:vec3 |
screenColor | La scène telle qu’elle est déjà dessinée. Utiliser ce nœud transforme le graphe en effet plein écran. | — | out:vec3 |
tint | Fait tirer l’image vers une couleur. | color:vec3, tint:vec3 | out:vec3 |
vignette | Assombrit les bords de l’image. | color:vec3, offset:float, darkness:float | out:vec3 |
vector
Construire, séparer et modifier des vecteurs et des couleurs.
| Nœud | Ce qu’il fait | Entrées | Sorties |
|---|---|---|---|
addVec3 | Additionne deux vecteurs de trois nombres. | a:vec3, b:vec3 | out:vec3 |
alpha | Extrait le canal de transparence. | v:vec4 | out:float |
combineVec2 | Construit un vecteur à partir de deux nombres. | x:float, y:float | out:vec2 |
combineVec3 | Construit un vecteur à partir de trois nombres. | r:float, g:float, b:float | out:vec3 |
combineVec4 | Construit un vecteur à partir de quatre nombres. | rgb:vec3, a:float | out:vec4 |
cross | Une direction perpendiculaire aux deux. | a:vec3, b:vec3 | out:vec3 |
distance | La distance entre deux points. | a:vec3, b:vec3 | out:float |
dot | Produit scalaire : à quel point deux directions se ressemblent. | a:vec3, b:vec3 | out:float |
equirectUv — Equirect UV | Projette une direction sur une image panoramique. | dir:vec3 | uv:vec2 |
flipbook — Flipbook | Joue comme une animation une grille d’images contenue dans une seule image. | uv:vec2, frame:float, tilesX:float, tilesY:float | uv:vec2 |
gamma | Applique une courbe gamma. | rgb:vec3, gamma:float | out:vec3 |
hsvToRgb | Reconvertit teinte, saturation et valeur en couleur. | hsv:vec3 | out:vec3 |
hueToRgb | Convertit directement une teinte en couleur. | h:float | out:vec3 |
length | La longueur d’un vecteur. | v:vec3 | out:float |
luminance | La luminosité d’une couleur telle que l’œil la perçoit. | rgb:vec3 | out:float |
mixVec3 | Mélange deux vecteurs de trois nombres. | a:vec3, b:vec3, t:float | out:vec3 |
multiplyVec3 | Multiplie deux vecteurs de trois nombres. | a:vec3, b:vec3 | out:vec3 |
normalize | Garde la direction et ramène la longueur à 1. | v:vec3 | out:vec3 |
panner | Fait défiler les coordonnées dans le temps, pour de l’eau qui coule, des tapis roulants ou des rayons d’énergie. | uv:vec2, speed:vec2 | out:vec2 |
reflect | Fait rebondir une direction sur une surface. | v:vec3, normal:vec3 | out:vec3 |
rgb | Construit une couleur à partir de trois nombres. | v:vec4 | out:vec3 |
rgbToHsv | Convertit une couleur en teinte, saturation et valeur. Le moyen simple de décaler la teinte. | rgb:vec3 | out:vec3 |
scaleVec2 | Multiplie un vecteur de deux nombres par un nombre. | v:vec2, s:float | out:vec2 |
scaleVec3 | Multiplie un vecteur de trois nombres par un nombre. | v:vec3, s:float | out:vec3 |
splitVec2 | Sépare deux nombres. | v:vec2 | x:float, y:float |
splitVec3 | Sépare trois nombres. | v:vec3 | x:float, y:float, z:float |
uvTransform | Met à l’échelle, fait tourner et déplace les coordonnées avant de lire une image. | uv:vec2, tiling:vec2, offset:vec2, rotation:float, center:vec2 | out:vec2 |