Color, efectos y texturas
Cada ejemplo de esta página se ejecuta después de estas dos líneas y termina enviando un color al nodo Salida:
from pyzed import shading
g = shading.Graph("demo")Los colores son vec3 (r, g, b) o vec4 (r, g, b, a) con valores de 0 a 1, no de 0 a 255: (1, 0.5, 0) es naranja.
HSV a RGB
Sección titulada «HSV a RGB»HSV to RGB · hsv_to_rgb · Color · g.hsv_to_rgb(...)
Un color a partir de tono (de 0 a 1 alrededor de la rueda), saturación y valor.

Un color a partir del tono (0..1 alrededor de la rueda: rojo, amarillo, verde, cian, azul, magenta, rojo), la saturación y el valor. Conecta el Tiempo al tono para un arcoíris que gira.
| Entrada | Tipo | Por defecto |
|---|---|---|
h · tono |
float |
0 |
s · saturación |
float |
1 |
v · valor |
float |
1 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
uv = g.uv()g.output(g.rgba(g.hsv_to_rgb(uv["x"], 0.8, 1.0), 1.0))RGB a HSV
Sección titulada «RGB a HSV»RGB to HSV · rgb_to_hsv · Color · g.rgb_to_hsv(...)
El tono, la saturación y el valor de un color.

Separa un color en tono, saturación y valor, para cambiar uno de ellos.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 0, 0) |
| Salida | Tipo |
|---|---|
hsv |
vec3 |
h · tono |
float |
s · saturación |
float |
v · valor |
float |
hsv = g.rgb_to_hsv([1.0, 0.5, 0.0])g.output(g.rgba(g.hsv_to_rgb(hsv["h"], 0.3, hsv["v"]), 1.0))Desplazar tono
Sección titulada «Desplazar tono»Hue shift · hue_shift · Color · g.hue_shift(...)
Gira el tono de un color (shift de 0 a 1 es una vuelta completa).

Gira el tono de un color por la rueda (shift 1 es una vuelta completa).
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 0, 0) |
shift · desplazamiento |
float |
0.25 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
g.output(g.rgba(g.hue_shift([1.0, 0.2, 0.2], g.time(scale=0.2)["time"]), 1.0))Saturación
Sección titulada «Saturación»Saturation · saturation · Color · g.saturation(...)
Más (por encima de 1) o menos (por debajo de 1) colorido; 0 es gris.

Más (por encima de 1) o menos (por debajo de 1) colorido; 0 es gris.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 0.5, 0) |
amount · cantidad |
float |
1.5 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
c = g.palette(g.uv()["x"])g.output(g.rgba(g.saturation(c, 0.4), 1.0))Brillo y contraste
Sección titulada «Brillo y contraste»Brightness and contrast · brightness_contrast · Color · g.brightness_contrast(...)
Más claro u oscuro, y más o menos contraste.

Más claro u oscuro, y más o menos contraste, como en un editor de fotos.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(0.5, 0.5, 0.5) |
brightness · brillo |
float |
0 |
contrast · contraste |
float |
1 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
c = g.palette(g.uv()["x"])g.output(g.rgba(g.brightness_contrast(c, 0.1, 1.4), 1.0))Luminancia
Sección titulada «Luminancia»Luminance · luminance · Color · g.luminance(...)
Lo brillante que se ve un color, de 0 a 1.

Lo brillante que parece un color al ojo, como un número de 0 a 1.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 1, 1) |
| Salida | Tipo |
|---|---|
value · valor |
float |
l = g.luminance([0.2, 0.7, 0.3])g.output(g.rgba(l, 1.0))Escala de grises
Sección titulada «Escala de grises»Grayscale · grayscale · Color · g.grayscale(...)
El color en tonos de gris.

El color en tonos de gris (blanco y negro).
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 0.5, 0) |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
c = g.palette(g.uv()["x"])g.output(g.rgba(g.grayscale(c), 1.0))Invertir
Sección titulada «Invertir»Invert · invert · Color · g.invert(...)
El color opuesto: 1 − color (conserva el alfa).

El negativo de un color (1 − color); el alfa se mantiene.
| Entrada | Tipo | Por defecto |
|---|---|---|
color |
T |
(1, 0.5, 0) |
| Salida | Tipo |
|---|---|
color |
T |
c = g.gradient(g.uv()["x"])g.output(g.invert(c["color"]))gamma · Color · g.gamma(...)
Aclara (por encima de 1) u oscurece (por debajo de 1) los tonos medios.

Aclara (por encima de 1) u oscurece (por debajo de 1) los medios tonos sin tocar el blanco y el negro.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(0.5, 0.5, 0.5) |
gamma |
float |
2.2 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
v = g.uv()["x"]g.output(g.rgba(g.gamma(g.compose(v, v, v), 2.2), 1.0))Posterizar
Sección titulada «Posterizar»Posterize · posterize · Color · g.posterize(...)
Conserva solo unos pocos niveles de cada componente.

Deja solo unos pocos escalones de cada color: sombreado cel y aspecto retro.
| Entrada | Tipo | Por defecto |
|---|---|---|
color |
T |
(0.3, 0.6, 0.9) |
steps · niveles |
float |
4 |
| Salida | Tipo |
|---|---|
color |
T |
c = g.palette(g.uv()["x"])g.output(g.rgba(g.posterize(c, 4.0), 1.0))Fusionar
Sección titulada «Fusionar»Blend · blend · Color · g.blend(...)
Fusiona layer sobre base como los modos de capa de un editor de imágenes.

Mezcla layer sobre base como los modos de capa de un editor de imágenes: normal, multiply, screen, overlay, add, subtract, difference, darken, lighten, soft light, color dodge y color burn.
| Entrada | Tipo | Por defecto |
|---|---|---|
base |
vec3 |
(0.2, 0.4, 0.8) |
layer · capa |
vec3 |
(1, 0.6, 0.2) |
opacity · opacidad |
float |
1 |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
| Ajuste | Valores | Por defecto |
|---|---|---|
mode |
normal, multiply, screen, overlay, add, subtract, difference, darken, lighten, soft_light, color_dodge, color_burn |
multiply |
base = g.gradient(g.uv()["y"])clouds = g.fbm(scale=3.0)layer = g.compose(clouds, clouds, clouds)g.output(g.rgba(g.blend(base["rgb"], layer, 0.8, mode="screen"), 1.0))Palette · palette · Color · g.palette(...)
Un color suave tipo arcoíris para t, con las paletas de coseno de Inigo Quilez: a + b × cos(2π(c × t + d)).

Convierte un número de 0 a 1 en un color suave tipo arcoíris con una fórmula de cosenos. Cambia d para desplazar los colores; es la forma más rápida de colorear un ruido.
| Entrada | Tipo | Por defecto |
|---|---|---|
t |
float |
0 |
a |
vec3 |
(0.5, 0.5, 0.5) |
b |
vec3 |
(0.5, 0.5, 0.5) |
c |
vec3 |
(1, 1, 1) |
d |
vec3 |
(0, 0.33, 0.67) |
| Salida | Tipo |
|---|---|
rgb |
vec3 |
n = g.noise(scale=4.0)g.output(g.rgba(g.palette(n), 1.0))Degradado
Sección titulada «Degradado»Gradient · gradient · Color · g.gradient(...)
Una rampa de color: el color en t (0 a 1) entre las paradas que elijas.

Una rampa de color que editas con paradas: el color en t entre las paradas. En el diseñador arrastras las paradas; en Python pasa stops=[[posición, color], ...].
| Entrada | Tipo | Por defecto |
|---|---|---|
t |
float |
0.5 |
| Salida | Tipo |
|---|---|
color |
vec4 |
rgb |
vec3 |
alpha |
float |
| Ajuste | Valores | Por defecto |
|---|---|---|
stops |
stops |
0 #1e1b4b, 0.5 #db2777, 1 #fde047 |
ramp = g.gradient(g.uv()["x"], stops=[[0.0, "#0f172a"], [0.6, "#7c3aed"], [1.0, "#f472b6"]])g.output(ramp)rgba · Color · g.rgba(...)
Un color con alfa a partir de un color vec3 y una opacidad.

Une un color RGB y una opacidad en el vec4 que quiere la Salida.
| Entrada | Tipo | Por defecto |
|---|---|---|
rgb |
vec3 |
(1, 1, 1) |
alpha |
float |
1 |
| Salida | Tipo |
|---|---|
color |
vec4 |
g.output(g.rgba([0.2, 0.6, 1.0], 0.5))Layer · layer · Color · g.layer(...)
Pone front sobre back usando el alfa de front.

Pone front sobre back usando el alfa de front, como apilar dos capas.
| Entrada | Tipo | Por defecto |
|---|---|---|
back · fondo |
vec4 |
(0, 0, 0, 1) |
front · frente |
vec4 |
(1, 1, 1, 0.5) |
| Salida | Tipo |
|---|---|
color |
vec4 |
back = g.gradient(g.uv()["y"])spot = g.rgba([1.0, 1.0, 1.0], g.fill(g.circle(radius=0.2)))g.output(g.layer(back["color"], spot))Efectos
Sección titulada «Efectos»Efectos de pantalla que devuelven un número cercano a 1: multiplica tu color final por ellos.
Vignette · vignette · Efectos · g.vignette(...)
Oscurece hacia las esquinas: multiplica un color por él.

Oscurece hacia las esquinas y lleva la mirada al centro.
| Entrada | Tipo | Por defecto |
|---|---|---|
uv |
vec2 |
UV (contexto) |
strength · intensidad |
float |
0.8 |
| Salida | Tipo |
|---|---|
value · valor |
float |
c = g.gradient(g.uv()["x"])g.output(g.rgba(c["rgb"] * g.vignette(strength=0.9), 1.0))Líneas de barrido
Sección titulada «Líneas de barrido»Scanlines · scanlines · Efectos · g.scanlines(...)
Las líneas horizontales de una pantalla CRT: multiplica un color por ellas.

Las líneas horizontales de un televisor antiguo; speed las hace desplazarse.
| Entrada | Tipo | Por defecto |
|---|---|---|
px · píxel |
vec2 |
Píxel (contexto) |
spacing · espaciado |
float |
3 |
strength · intensidad |
float |
0.25 |
speed · velocidad |
float |
0 |
| Salida | Tipo |
|---|---|
value · valor |
float |
c = g.gradient(g.uv()["y"])g.output(g.rgba(c["rgb"] * g.scanlines(spacing=3.0, strength=0.3), 1.0))Grano de película
Sección titulada «Grano de película»Film grain · grain · Efectos · g.grain(...)
Motas aleatorias que cambian cada fotograma: multiplica un color por ellas.

Motas aleatorias que cambian en cada fotograma, como en una película.
| Entrada | Tipo | Por defecto |
|---|---|---|
px · píxel |
vec2 |
Píxel (contexto) |
strength · intensidad |
float |
0.12 |
| Salida | Tipo |
|---|---|
value · valor |
float |
c = g.gradient(g.uv()["x"])g.output(g.rgba(c["rgb"] * g.grain(strength=0.15), 1.0))Textura
Sección titulada «Textura»Imágenes en un shader: añade una variable texture (un archivo de imagen) y lee sus colores.
Muestrear textura
Sección titulada «Muestrear textura»Sample texture · sample_texture · Textura · g.sample_texture(...)
El color de una textura (una variable de imagen) en uv.

Lee el color de una imagen en un UV. Añade una variable texture cuyo valor sea la ruta de una imagen (relativa al .pzshad), conéctala a texture y deforma antes el UV para ondas o pixelado.
| Entrada | Tipo | Por defecto |
|---|---|---|
texture · textura |
texture |
— |
uv |
vec2 |
UV (contexto) |
| Salida | Tipo |
|---|---|
color |
vec4 |
rgb |
vec3 |
alpha |
float |
photo = g.uniform("photo", "texture", "photo.png")uv = g.pixelate(cells=[40.0, 30.0])g.output(g.sample_texture(photo, uv["uv"]))Ver también: Primeros pasos · La vista Shader · Recetas · Grafos de shader en Python