Ir al contenido

Ruido y patrones

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")

El ruido da valores entre 0 y 1 que parecen aleatorios pero cambian suavemente: la base de nubes, fuego, agua, mármol y terrenos.

Noise · noise · Ruido · g.noise(...)

Valores aleatorios suaves de 0 a 1 (ruido de valor, Perlin o simplex).

El nodo Ruido tal como se ve en la vista Shader, con su vista previa

Aleatoriedad suave de 0 a 1. Perlin es la clásica, simplex se ve más natural, value es más cuadrada y más barata. scale es cuántas ondulaciones caben.

Entrada Tipo Por defecto
p vec2 UV con proporción (contexto)
scale · escala float 8
Salida Tipo
value · valor float
Ajuste Valores Por defecto
kind value, perlin, simplex perlin

Entradas de la barra lateral

Entrada Qué hace En Python
Ruido Valores aleatorios suaves de 0 a 1 (ruido de valor, Perlin o simplex). g.noise(...)
Ruido de valor Ruido suave en bloques de 0 a 1. g.value_noise(...)
Ruido simplex Ruido simplex de 0 a 1. g.simplex_noise(...)
Ejemplo
n = g.noise(scale=5.0, kind="simplex")
g.output(g.rgba(n, 1.0))

Fractal noise · fbm · Ruido · g.fbm(...)

Capas de ruido, cada una más fina y tenue (fBm): nubes, humo, fuego, terreno.

El nodo Ruido fractal tal como se ve en la vista Shader, con su vista previa

Varias capas de ruido, cada una más fina y más tenue: el aspecto de nubes, humo y montañas. Más octaves añaden detalle (y coste).

Entrada Tipo Por defecto
p vec2 UV con proporción (contexto)
scale · escala float 4
octaves · octavas int 5
lacunarity · lacunaridad float 2
gain · ganancia float 0.5
Salida Tipo
value · valor float
Ajuste Valores Por defecto
kind value, perlin, simplex value
Ejemplo
n = g.fbm(scale=3.0, octaves=6)
g.output(g.gradient(n))

voronoi · Ruido · g.voronoi(...)

Celdas alrededor de puntos aleatorios: la distancia al punto más cercano y al segundo, al borde más cercano, y un número aleatorio por celda. Phase mueve los puntos.

El nodo Voronoi tal como se ve en la vista Shader, con su vista previa

Celdas alrededor de puntos aleatorios, como barro agrietado, cristales o piel de jirafa. edge es pequeño cerca de los bordes y cell es un número aleatorio por celda (ideal para un color por celda). phase mueve los puntos.

Entrada Tipo Por defecto
p vec2 UV con proporción (contexto)
scale · escala float 6
jitter · dispersión float 1
phase · fase float Tiempo (contexto)
Salida Tipo
distance · distancia float
second · segundo float
edge · borde float
cell · celda float
Ejemplo
v = g.voronoi(scale=6.0)
color = g.palette(v["cell"])
g.output(g.rgba(color * g.smoothstep(0.0, 0.05, v["edge"]), 1.0))

White noise · white_noise · Ruido · g.white_noise(...)

Un número aleatorio distinto, de 0 a 1, para cada valor de p.

El nodo Ruido blanco tal como se ve en la vista Shader, con su vista previa

Un número aleatorio distinto para cada valor de entrada, sin suavidad: estática de TV, destellos, tramado.

Entrada Tipo Por defecto
p vec2 Píxel (contexto)
Salida Tipo
value · valor float
random2 vec2
Ejemplo
n = g.white_noise()
g.output(g.rgba(n, 1.0))

Random · random · Ruido · g.random(...)

Un número aleatorio de 0 a 1 para una semilla (misma semilla, mismo número).

El nodo Aleatorio tal como se ve en la vista Shader, con su vista previa

Un número aleatorio para una semilla: la misma semilla da siempre el mismo número. Pásale el número de una celda para dar a cada celda su propio valor.

Entrada Tipo Por defecto
seed · semilla float 1
Salida Tipo
value · valor float
Ejemplo
r = g.repeat(cell=[0.2, 0.2])
v = g.random(r["cell"].x * 7.0 + r["cell"].y)
g.output(g.rgba(v, 1.0))

Patrones regulares, casi siempre 0 o 1 (negro o blanco). Multiplica un color por ellos, o úsalos como t de un Mezclar o un Degradado.

Checker · checker · Patrones · g.checker(...)

Un tablero de ajedrez de 0 y 1.

El nodo Tablero tal como se ve en la vista Shader, con su vista previa

Un damero: 0 y 1 en cuadros alternos.

Entrada Tipo Por defecto
uv vec2 UV con proporción (contexto)
cells · celdas vec2 (8, 8)
Salida Tipo
value · valor float
Ejemplo
c = g.checker(cells=[8.0, 8.0])
g.output(g.rgba(g.mix(0.2, 0.9, c), 1.0))

Stripes · stripes · Patrones · g.stripes(...)

Franjas paralelas de 0 y 1 (ángulo en radianes, ancho de 0 a 1).

El nodo Franjas tal como se ve en la vista Shader, con su vista previa

Rayas paralelas en cualquier ángulo; width es cuánto de cada raya es blanco.

Entrada Tipo Por defecto
uv vec2 UV (contexto)
count · cantidad float 10
angle · ángulo float 0
width · ancho float 0.5
Salida Tipo
value · valor float
Ejemplo
s = g.stripes(count=12.0, angle=0.785)
g.output(g.rgba(s, 1.0))

Grid · grid · Patrones · g.grid(...)

Líneas de cuadrícula: 1 sobre las líneas, 0 entre ellas (grosor de 0 a 1 de una celda).

El nodo Cuadrícula tal como se ve en la vista Shader, con su vista previa

Líneas finas de cuadrícula: papel milimetrado, planos y suelos synthwave.

Entrada Tipo Por defecto
uv vec2 UV con proporción (contexto)
cells · celdas vec2 (8, 8)
thickness · grosor float 0.06
Salida Tipo
value · valor float
Ejemplo
l = g.grid(cells=[10.0, 10.0], thickness=0.05)
g.output(g.rgba(g.mix([0.05, 0.05, 0.15], [0.2, 0.8, 1.0], l), 1.0))

Dots · dots · Patrones · g.dots(...)

Una cuadrícula de puntos redondos: 1 dentro, 0 fuera (radio de 0 a 0,5 de una celda).

El nodo Puntos tal como se ve en la vista Shader, con su vista previa

Una cuadrícula de puntos redondos: lunares y aspecto de trama de imprenta.

Entrada Tipo Por defecto
uv vec2 UV con proporción (contexto)
cells · celdas vec2 (10, 10)
radius · radio float 0.3
Salida Tipo
value · valor float
Ejemplo
d = g.dots(cells=[12.0, 12.0], radius=0.25)
g.output(g.rgba(d, 1.0))

Linear gradient · linear_gradient · Patrones · g.linear_gradient(...)

De 0 a 1 a lo ancho del área en una dirección (ángulo en radianes).

El nodo Degradado lineal tal como se ve en la vista Shader, con su vista previa

De 0 a 1 a lo ancho del área en una dirección (angle en radianes, 0 es de izquierda a derecha).

Entrada Tipo Por defecto
uv vec2 UV (contexto)
angle · ángulo float 0
Salida Tipo
value · valor float
Ejemplo
t = g.linear_gradient(angle=1.57)
g.output(g.gradient(t))

Radial gradient · radial_gradient · Patrones · g.radial_gradient(...)

1 en el centro, se desvanece hasta 0 en el radio (respeta la proporción).

El nodo Degradado radial tal como se ve en la vista Shader, con su vista previa

1 en el centro que se desvanece a 0 en radius: focos, brillos suaves y viñetas.

Entrada Tipo Por defecto
uv vec2 UV (contexto)
center · centro vec2 (0.5, 0.5)
radius · radio float 0.5
Salida Tipo
value · valor float
Ejemplo
r = g.radial_gradient(radius=0.5)
g.output(g.rgba(g.compose(r, r * 0.6, 0.2), 1.0))

Wave · wave · Patrones · g.wave(...)

Una onda repetida de 0 a 1 (seno, triangular, cuadrada o diente de sierra): frequency ondas por unidad de x.

El nodo Onda tal como se ve en la vista Shader, con su vista previa

Una onda repetida de 0 a 1 en cuatro formas: sine (suave), triangle, square (encendido/apagado, parpadeo) y sawtooth (rampa). Con la x por defecto (el tiempo) se anima; conecta una coordenada UV para obtener bandas.

Entrada Tipo Por defecto
x float Tiempo (contexto)
frequency · frecuencia float 1
phase · fase float 0
Salida Tipo
value · valor float
Ajuste Valores Por defecto
shape sine, triangle, square, sawtooth sine

Entradas de la barra lateral

Entrada Qué hace En Python
Onda Una onda repetida de 0 a 1 (seno, triangular, cuadrada o diente de sierra): frequency ondas por unidad de x. g.wave(...)
Onda cuadrada Encendido y apagado: 0 o 1, repetido. g.square_wave(...)
Onda diente de sierra Sube de 0 a 1 y vuelve a empezar. g.sawtooth_wave(...)
Ejemplo
w = g.wave(g.uv()["x"], frequency=6.0, shape="triangle")
g.output(g.rgba(w, 1.0))

Ver también: Primeros pasos · La vista Shader · Recetas · Grafos de shader en Python