learn GLSL from zero
ToolsCrea con shadersShader MakerCrea shaders gratis en líneaToolkitObras de shaders listas para tu webSketcher LabPinta el hero de tu landing con shaders3D StudioEl editor Three.js en tu navegador
GamesJuega con shadersOnomatoShaderEscribe una palabra y explótalaThe WatcherUn ojo que te sigueAetherVidrio líquido con un ojo adentroBloomcoreUna palabra hace crecer un jardín de luzPyrokineAvienta fuego a la paredVoltaicLa pirámide lanza rayosSurfSurfea un océano de shader

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.
PruebaCambia 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]
close