Entradas, parámetros y constantes
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")Entrada
Sección titulada «Entrada»Dónde está el píxel que se pinta, el tamaño del área, el tiempo y el ratón. Casi todo grafo empieza con uno de estos.
uv · Entrada · g.uv(...)
Dónde está el píxel, de (0, 0) arriba a la izquierda a (1, 1) abajo a la derecha.

El nodo más usado. x va de 0 a la izquierda a 1 a la derecha e y de 0 arriba a 1 abajo, sea cual sea el tamaño del widget. Conecta x a un Degradado para obtener una rampa horizontal.
| Salida | Tipo |
|---|---|
uv |
vec2 |
x |
float |
y |
float |
uv = g.uv()g.output(g.gradient(uv["x"]))Pixel · pixel · Entrada · g.pixel(...)
Dónde está el píxel, en píxeles desde arriba a la izquierda.

Como UV pero en píxeles: úsalo para lo que debe mantener su tamaño en píxeles cuando el widget crece, como líneas cada 3 píxeles.
| Salida | Tipo |
|---|---|
px · píxel |
vec2 |
x |
float |
y |
float |
px = g.pixel()lines = g.fract(px["y"] / 4.0)g.output(g.rgba(g.step(0.5, lines), 1.0))Size · size · Entrada · g.size(...)
El tamaño del área sombreada en píxeles y su proporción (ancho / alto).

El ancho y el alto del área en píxeles. aspect (ancho ÷ alto) mantiene redondos los círculos en widgets anchos; Centered UV ya lo usa por ti.
| Salida | Tipo |
|---|---|
size · tamaño |
vec2 |
width · ancho |
float |
height · alto |
float |
aspect · proporción |
float |
s = g.size()g.output(g.rgba(g.fract(s["aspect"]), 1.0))Time · time · Entrada · g.time(...)
Segundos desde que arrancó la app (por scale), y su seno y coseno.

Segundos desde que arrancó la app: todo lo que se conecta a él se mueve. sin y cos oscilan suavemente entre −1 y 1, perfectos para pulsos. scale lo acelera o lo frena.
| Entrada | Tipo | Por defecto |
|---|---|---|
scale · escala |
float |
1 |
| Salida | Tipo |
|---|---|
time · tiempo |
float |
sin |
float |
cos |
float |
t = g.time(scale=2.0)pulse = t["sin"] * 0.5 + 0.5g.output(g.rgba(g.hsv_to_rgb(0.6, 0.8, pulse), 1.0))Mouse · mouse · Entrada · g.mouse(...)
Dónde está el puntero de 0 a 1 (el centro mientras está fuera), y si está sobre el shader.

Dónde está el puntero, en UV (0 a 1). Mientras está fuera del shader, position es el centro e inside es falso. Ideal para focos y efectos al pasar el ratón.
| Salida | Tipo |
|---|---|
position · posición |
vec2 |
inside · dentro |
bool |
m = g.mouse()light = g.radial_gradient(center=m["position"], radius=0.3)g.output(g.rgba(light, 1.0))UV centrado
Sección titulada «UV centrado»Centered UV · centered_uv · Entrada · g.centered_uv(...)
UV con (0, 0) en el centro y círculos redondos: donde dibujar formas. UV con proporción va de 0 a la proporción a lo ancho, para que el ruido y las celdas queden cuadrados.

Las coordenadas para dibujar formas: (0, 0) es el centro y una unidad es la altura, así un círculo sigue redondo en cualquier widget. aspect_uv mantiene cuadrados el ruido y las celdas.
| Entrada | Tipo | Por defecto |
|---|---|---|
uv |
vec2 |
UV (contexto) |
| Salida | Tipo |
|---|---|
centered · centrado |
vec2 |
aspect_uv · uv con proporción |
vec2 |
c = g.centered_uv()d = g.length(c["centered"])g.output(g.rgba(g.smoothstep(0.4, 0.0, d), 1.0))Parámetros
Sección titulada «Parámetros»Un nodo Parámetro lee una de las variables del shader: los valores que cambia tu código Python (o un deslizador en la pestaña Vista previa).
Parámetro
Sección titulada «Parámetro»Parameter · parameter · Parámetros · g.parameter(...)
Lee una variable del shader (ver la lista Variables): una mutable cambia sin recompilar, una constante queda dentro del código.

Los mandos de tu shader. g.uniform(...) añade una variable mutable y un nodo Parámetro a la vez; en el diseñador, arrastra una variable de la Estructura (Outline) al grafo. Una variable color da las salidas color, rgb y alpha.
| Salida | Tipo |
|---|---|
value · valor |
float |
| Ajuste | Valores | Por defecto |
|---|---|---|
name |
variable |
— |
La salida toma el tipo de la variable; una variable color da color, rgb y alpha.
tint = g.uniform("tint", "color", "#22d3ee")glow = g.radial_gradient(radius=0.6)g.output(g.rgba(tint["rgb"] * glow, 1.0))Constantes
Sección titulada «Constantes»Valores fijos escritos en el shader. Si un valor nunca cambia, una constante es lo más simple; si quieres cambiarlo desde código, usa una variable.
Decimal
Sección titulada «Decimal»Float · float · Constantes · g.float(...)
Un número fijo.

Un número fijo. La mayoría de las entradas ya aceptan un valor escrito directamente, así que solo necesitas este nodo para llevar el mismo número a varios sitios.
| Salida | Tipo |
|---|---|
value · valor |
float |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
float |
0.5 |
half = g.float(0.5)g.output(g.rgba(g.compose(half, half, 1.0), 1.0))Int · int · Constantes · g.int(...)
Un número entero fijo.

Un número entero fijo, para entradas como las octavas de Ruido fractal.
| Salida | Tipo |
|---|---|
value · valor |
int |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
int |
1 |
octaves = g.int(3)n = g.fbm(octaves=octaves)g.output(g.rgba(n, 1.0))Booleano
Sección titulada «Booleano»Bool · bool · Constantes · g.bool(...)
Un verdadero o falso fijo.

Un verdadero o falso fijo, para los nodos Elegir y Lógica.
| Salida | Tipo |
|---|---|
value · valor |
bool |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
bool |
true |
on = g.bool(True)g.output(g.rgba(g.select(on, 1.0, 0.2), 1.0))Vector2
Sección titulada «Vector2»vec2 · Constantes · g.vec2(...)
Dos números fijos.

Dos números fijos: un punto o un tamaño.
| Salida | Tipo |
|---|---|
value · valor |
vec2 |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
vec2 |
(0.5, 0.5) |
center = g.vec2([0.3, 0.5])g.output(g.rgba(g.radial_gradient(center=center, radius=0.3), 1.0))Vector3
Sección titulada «Vector3»vec3 · Constantes · g.vec3(...)
Tres números fijos.

Tres números fijos: a menudo un color RGB escrito con números de 0 a 1.
| Salida | Tipo |
|---|---|
value · valor |
vec3 |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
vec3 |
(1, 1, 1) |
orange = g.vec3([1.0, 0.5, 0.0])g.output(g.rgba(orange, 1.0))Vector4
Sección titulada «Vector4»vec4 · Constantes · g.vec4(...)
Cuatro números fijos.

Cuatro números fijos: un color con alfa, en números.
| Salida | Tipo |
|---|---|
value · valor |
vec4 |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
vec4 |
(1, 1, 1, 1) |
g.output(g.vec4([0.1, 0.2, 0.4, 1.0]))color · Constantes · g.color(...)
Un color fijo.

Un color fijo elegido con el selector de color (o escrito como #rrggbb).
| Salida | Tipo |
|---|---|
color |
vec4 |
rgb |
vec3 |
alpha |
float |
| Ajuste | Valores | Por defecto |
|---|---|---|
value |
color |
#7c3aed |
g.output(g.color("#7c3aed"))Constantes matemáticas
Sección titulada «Constantes matemáticas»Math constants · math_constants · Constantes · g.math_constants(...)
π, τ (2π), e y la proporción áurea.

π, τ (2π), e y φ, para no escribir 3.14159. Multiplica un valor 0..1 por τ para obtener una vuelta completa en radianes.
| Salida | Tipo |
|---|---|
pi · π |
float |
tau · τ |
float |
e |
float |
phi · φ |
float |
k = g.math_constants()wave = g.sin(g.uv()["x"] * k["tau"] * 3.0) * 0.5 + 0.5g.output(g.rgba(wave, 1.0))Ver también: Primeros pasos · La vista Shader · Recetas · Grafos de shader en Python