Referencia de nodos de shader
95 nodos en 7 categorías, para construir materiales como grafos. Cómo usarlos: Grafos de material.
Los tipos de puerto son float, vec2, vec3 y vec4. Un vec3 lleva un color o una dirección; conectar anchuras distintas se resuelve por ti cuando tiene sentido.
const
Valores fijos que escribes tú.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
constFloat | Un número fijo. | — | out:float |
constVec3 | Un trío fijo. | — | out:vec3 |
input
De dónde vienen los valores: UV, normal de superficie, tiempo, texturas, instancia dibujada.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
cameraDistance | A qué distancia está ese píxel de la cámara. Útil para desvanecer con la distancia. | — | out:float |
chromaKey — Chroma key | Quita un color, dejando transparente un fondo verde. | color:vec3, key:vec3, similarity:float, smoothness:float, spill:float | rgba:vec4 |
instanceColor — Instance Color | El tono que lleva esa copia. | — | out:vec3 |
instanceId — Instance ID | Qué copia de un objeto instanciado se está dibujando: pásalo por un hash y cada copia sale distinta. | — | out:float |
materialRef — Material | Toma otro material como punto de partida. | — | out:vec3 |
normal | Hacia dónde mira la superficie. | — | out:vec3 |
normalMap | Aplica un mapa de normales, añadiendo detalle de superficie sin geometría extra. | uv:vec2, strength:float | out:vec3 |
paramColor — Param (color) | Un color expuesto igual. | — | out:vec3 |
paramFloat — Param (float) | Un número expuesto como ajuste del material, que se puede tocar sin entrar en el grafo. | — | out:float |
position | El punto sobre la superficie, en el espacio propio del objeto. | — | out:vec3 |
sampleLod — Sample Texture LOD | Muestrea en un nivel de desenfoque elegido: suavidad barata. | uv:vec2, lod:float | rgba:vec4 |
screenUv | Dónde está el píxel en la pantalla, en vez de sobre la superficie. | — | out:vec2 |
texelFetch — Texel Fetch | Lee un píxel exacto, sin filtrado. | texel:vec2 | rgba:vec4 |
texelSize — Texture Size | Cuánto mide un píxel de textura, para efectos que muestrean a los vecinos. | — | size:vec2, texel:vec2 |
texture | Muestrea una imagen en unas coordenadas. | uv:vec2 | rgba:vec4 |
time | Segundos desde que arrancó la escena. Todo lo que se mueve empieza aquí. | — | out:float |
triplanar | Proyecta una textura desde tres direcciones a la vez, para que la geometría sin UV o estirada quede bien. | scale:float, blend:float | rgba:vec4 |
uv | Las coordenadas de textura del píxel que se dibuja: la base de casi todos los patrones. | — | out:vec2 |
viewDirection | La dirección desde la superficie hacia la cámara. | — | out:vec3 |
worldPosition | El mismo punto en espacio de mundo: para efectos que se quedan quietos cuando el objeto se mueve. | — | out:vec3 |
light
Términos de iluminación que das forma tú mismo.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
fresnel | Más fuerte en los ángulos rasantes: luz de contorno, campos de fuerza, el brillo de un coche. | power:float, normal:vec3 | out:float |
lit — Lit (scene lights) | Iluminación estándar, para que un grafo propio encaje bien en la escena. | color:vec3, roughness:float, specular:float, normal:vec3 | out:vec3 |
toonLit — Toon (scene lights) | Iluminación por bandas, para un aspecto estilizado. | color:vec3, steps:float, normal:vec3 | out:vec3 |
math
Aritmética y curvas sobre números sueltos.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
abs | Quita el signo. | x:float | out:float |
add | Suma. | a:float, b:float | out:float |
atan2 | El ángulo hacia un punto: así se construyen los patrones radiales. | y:float, x:float | out:float |
ceil | Redondea hacia arriba. | x:float | out:float |
clamp | Mantiene un valor dentro de un rango. | x:float, min:float, max:float | out:float |
cos | Coseno. | x:float | out:float |
divide | Divide. | a:float, b:float | out:float |
exp | e elevado a la entrada. | x:float | out:float |
fbm | Ruido por capas: nubes, humo, óxido, terreno. | uv:vec2, scale:float, octaves:float | out:float |
floor | Redondea hacia abajo. | x:float | out:float |
fract | Solo la parte decimal: la forma estándar de hacer que algo se repita. | x:float | out:float |
log | Logaritmo natural. | x:float | out:float |
max | El mayor de los dos. | a:float, b:float | out:float |
min | El menor de los dos. | a:float, b:float | out:float |
mix | Mezcla dos valores. | a:float, b:float, t:float | out:float |
mod | El resto; la otra forma de hacer que un valor dé la vuelta. | x:float, y:float | out:float |
multiply | Multiplica. | a:float, b:float | out:float |
noise | Valores aleatorios suaves. El punto de partida de todo lo orgánico. | uv:vec2, scale:float | out:float |
oneMinus | Da la vuelta a un valor de 0 a 1. Sorprendentemente útil. | x:float | out:float |
posterize | Fija los valores a un número de escalones: bandeado, a propósito. | x:float, steps:float | out:float |
pow | Eleva a una potencia. | x:float, e:float | out:float |
remap | Lleva de un rango a otro. | x:float, inMin:float, inMax:float, outMin:float, outMax:float | out:float |
round | Redondea al más cercano. | x:float | out:float |
sign | Da −1, 0 o 1. | x:float | out:float |
sin | Seno: toda oscilación, pulso y ondulación empieza aquí. | x:float | out:float |
smoothstep | Un borde suave, con degradado entre dos umbrales. El caballo de batalla de los grafos de shader. | from:float, to:float, x:float | out:float |
sqrt | Raíz cuadrada. | x:float | out:float |
step | Un borde duro: por debajo del umbral 0, por encima 1. | edge:float, x:float | out:float |
subtract | Resta. | a:float, b:float | out:float |
tan | Tangente. | x:float | out:float |
voronoi | Patrones celulares: escamas, tierra agrietada, vidrieras. | uv:vec2, scale:float | dist:float, cell:float |
output
Donde termina el grafo: el aspecto real de la superficie.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
mrtOutput — Output (MRT) | Escribe varias salidas a la vez, para pipelines avanzados. | color:vec3, alpha:float, color1:vec3, alpha1:float, color2:vec3, alpha2:float, color3:vec3, alpha3:float | — |
output | Donde termina el grafo: el aspecto final de la superficie. | color:vec3, alpha:float, offset:vec3 | — |
surfaceOutput — Output (surface) | La descripción física: color base, metalicidad, rugosidad, normal, emisión, alfa. | 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
Nodos que muestrean la imagen ya renderizada: convierten el grafo en un efecto a pantalla completa en lugar de una superficie.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
chromaticAberration | Separa los canales de color en los bordes, como un objetivo de verdad. | uv:vec2, amount:float | out:vec3 |
contrast | Separa claros y oscuros. | color:vec3, amount:float | out:vec3 |
exposure | Aclara u oscurece toda la imagen. | color:vec3, amount:float | out:vec3 |
grain | Añade grano de película. | color:vec3, intensity:float | out:vec3 |
invert | La invierte. | color:vec3 | out:vec3 |
saturation | Más o menos color. | color:vec3, amount:float | out:vec3 |
screenColor | La escena tal y como ya se ha renderizado. Usarlo convierte el grafo en un efecto a pantalla completa. | — | out:vec3 |
tint | Empuja la imagen hacia un color. | color:vec3, tint:vec3 | out:vec3 |
vignette | Oscurece los bordes de la imagen. | color:vec3, offset:float, darkness:float | out:vec3 |
vector
Construir, separar y transformar vectores y colores.
| Nodo | Qué hace | Entradas | Salidas |
|---|---|---|---|
addVec3 | Suma dos tríos. | a:vec3, b:vec3 | out:vec3 |
alpha | Saca el canal de transparencia. | v:vec4 | out:float |
combineVec2 | Construye un par. | x:float, y:float | out:vec2 |
combineVec3 | Construye un trío. | r:float, g:float, b:float | out:vec3 |
combineVec4 | Construye un cuarteto. | rgb:vec3, a:float | out:vec4 |
cross | Una dirección perpendicular a las dos. | a:vec3, b:vec3 | out:vec3 |
distance | Distancia entre dos puntos. | a:vec3, b:vec3 | out:float |
dot | Producto escalar: cuánto coinciden dos direcciones. | a:vec3, b:vec3 | out:float |
equirectUv — Equirect UV | Proyecta una dirección sobre una imagen panorámica. | dir:vec3 | uv:vec2 |
flipbook — Flipbook | Reproduce como animación una rejilla de fotogramas metida en una sola imagen. | uv:vec2, frame:float, tilesX:float, tilesY:float | uv:vec2 |
gamma | Aplica una curva gamma. | rgb:vec3, gamma:float | out:vec3 |
hsvToRgb | Y de vuelta. | hsv:vec3 | out:vec3 |
hueToRgb | Un tono directamente a color. | h:float | out:vec3 |
length | La longitud de un vector. | v:vec3 | out:float |
luminance | Cuán brillante parece un color al ojo. | rgb:vec3 | out:float |
mixVec3 | Mezcla dos tríos. | a:vec3, b:vec3, t:float | out:vec3 |
multiplyVec3 | Multiplica dos tríos. | a:vec3, b:vec3 | out:vec3 |
normalize | Misma dirección, longitud 1. | v:vec3 | out:vec3 |
panner | Hace desplazarse las coordenadas con el tiempo: agua que corre, cintas transportadoras, rayos de energía. | uv:vec2, speed:vec2 | out:vec2 |
reflect | Hace rebotar una dirección en una superficie. | v:vec3, normal:vec3 | out:vec3 |
rgb | Construye un color a partir de tres números. | v:vec4 | out:vec3 |
rgbToHsv | De color a tono, saturación y valor: la forma sencilla de desplazar el tono. | rgb:vec3 | out:vec3 |
scaleVec2 | Escala un par por un número. | v:vec2, s:float | out:vec2 |
scaleVec3 | Escala un trío por un número. | v:vec3, s:float | out:vec3 |
splitVec2 | Separa un par. | v:vec2 | x:float, y:float |
splitVec3 | Separa un trío. | v:vec3 | x:float, y:float, z:float |
uvTransform | Escala, gira y desplaza las coordenadas antes de muestrear. | uv:vec2, tiling:vec2, offset:vec2, rotation:float, center:vec2 | out:vec2 |