Lección 1 de 10 · GLSL para principiantes
Hola, luz
Tu primera pieza. Un color. Millones de puntos de luz.
Tu primer pixel encendido. La GPU esperando instrucciones.
¿Qué es un shader?Un shader es un programa que corre en tu GPU, el chip gráfico de tu computadora. Tu pantalla está hecha de millones de puntos de luz. El shader decide de qué color se enciende cada uno. Esos puntos se llaman frags. Tu pantalla tiene millones. Eso es lo que vas a escribir aquí.
Lo que ves abajo es un fragment shader. El código decide el color, y la última línea, gl_FragColor, es la que lo enciende.
Leyendo el código
void main(): el punto de inicio. Todo shader arranca aquí.vec3 col: una variable que guarda 3 números: rojo, verde, azul.iri(): la fórmula de color. Cicla entre 7 colores.T: el tiempo en segundos. Sigue creciendo, así que el color sigue cambiando.0.15: qué tan rápido pasa el tiempo. Más grande = más rápido. En 0, el tiempo se detiene y el color se congela.gl_FragColor: la salida final. Esto es lo que pinta el frag.Mueve el slider de Tiempo: en
0 el color se congela, súbelo y cicla cada vez más rápido. También puedes cambiar el 0.15 a mano, prueba 0.5 para que vuele o 0.02 para que respire lento.Freebie
PULSE
Reemplaza todo el código con esto y ve cómo pulsa.void main(){
vec3 col = iri(T * 0.15);
col *= .5 + .5 * sin(T);
gl_FragColor = vec4(col, 1.);
}¿Quieres que pulse más rápido? Cambia T por T * 3.. El punto después del 3 es importante. En shaders, los números siempre llevan punto: 3. no 3
El código
void main(){
vec3 col = iri(T * 0.15);
col *= 0.85;
gl_FragColor = vec4(col, 1.);
}