Lección 3 de 10 · Patrones en shaders
El grid
Un ojo por celda. El grid te observa.
Hasta ahora tus rayas eran una onda continua, sin() se estira suave de un lado al otro. Ahora vas a aprender a cortar el espacio en celdas.
fract() toma solo la parte decimal de un número. Si le pasas 3.7, devuelve 0.7. Si le pasas 5.2, devuelve 0.2. El resultado: las coordenadas se reinician cada vez que cruzan un entero. El espacio se repite.
fract(), el espacio se reinicia. Tiling infinito.
fract(p * N)Multiplicas las coordenadas por
N y luego tomas fract(). El espacio se divide en N × N celdas idénticas. Cada celda va de 0 a 1. Lo que dibujes en una celda aparece en todas. Infinito gratis.Cambia el
3. a 8., más celdas, más chicas. A 2., pocas celdas, más grandes. Cambia length(cell - 0.5) por cell.x para ver gradientes por celda en vez de círculos.Freebie
EYES
Busca// reemplaza esto en el código y cambia esa línea por estas cinco:vec2 id = floor(p * 3.); float h = fract(sin(dot(id, vec2(127.1, 311.7))) * 43758.5); float blink = pow(max(0., sin(T * .8 + h * 6.28)), 50.); iris *= 1. - blink; pupil *= 1. - blink;
Pégalo. Cada ojo arranca con su propio ritmo y parpadea cuando quiere. Te están mirando.
El código
[object Object]