A Apéndice
Guía rápida de funciones integradas
Elige una función para trazarla. Arrastra o edita los números del código y la curva los seguirá.
Modelado
Repetición
Periódicas
Exponenciales
Vectores
Muestreo
smoothstep Interruptor suave: una curva en S entre dos bordesCuidado: el primer borde debe ser menor que el segundo
Lo ves → lo usas
- Círculos, anillos
length(p) − r; anillo: abs(d) − w - Unión, intersección, recortes
min · max · max(a, −b) - Líquidos, formas que se funden
smin(a, b, k) - Pétalos, estrellas, rayos, espirales
atan + cos(n · a) - Baldosas, puntos, cuadrículas
fract(p · n); floor para la celda - Cada celda distinta
hash(floor(p)) - Simetría, caleidoscopios
abs(p); mod sobre el ángulo - Contornos, neón, líneas de nivel
abs(d) · w / abs(d) · cos(d / w) - Bordes limpios a cualquier escala
smoothstep + fwidth - Arcoíris, degradados de color
0.5 + 0.5 · cos(2π(t + phase)) - Nubes, mármol, fuego
fbm, deformación del dominio - Giros, flujos, destellos
uTime en las coordenadas o el color - Aspecto 3D sombreado
max(dot(N, L), 0.0) - 3D sin triángulos
raymarch + SDF
Ejercicio
Se ejecuta una vez por píxelArrastra los números o edita el código
Lado JS
Recuerda las funciones por su forma: modelado, repetición, periódicas y vectores cubren la mayoría de los shaders. Aprende después las trampas: mod con negativos, el orden de argumentos de atan, el orden de bordes de smoothstep y la base negativa de pow.
Pruébalo
- Intercambia los dos bordes en smoothstep: ¿en qué se convierte la curva?
- Cambia fract(x) por fract(x * 3.0) y cuenta los dientes
- Compara mod y fract en el lado negativo
- Abre el depurador de píxeles, pon el puntero en la curva y lee x e y