Lección 2 de 10 · Fractales en GLSL
z = z² + c
Una sola regla, repetida. La semilla de todo.
Toda la familia Mandelbrot nace de una línea: z = z² + c. Elevar al cuadrado un número complejo no es x²; es (x²-y², 2xy), una rotación más un estiramiento. Eso es la línea rara de adentro del bucle.
Aquí c es el frag y arrancamos z = c, iterando solo IT=5 veces. Todavía no decidimos quién escapa; pintamos el campo crudo, qué tan grande se puso z tras pocos pasos. Ya se asoma la silueta.
z = vec2(z.x*z.x - z.y*z.y, 2.0*z.x*z.y) + cLa multiplicación compleja: parte real
x²-y², parte imaginaria 2xy. Sumarle c reinyecta la posición del frag en cada vuelta. Repetir esto es todo el fractal.Cambia
const int IT=5 a 2 y ves el campo casi sin formar; el bucle necesita un número fijo en WebGL. Sube zoom a 2.2 para abrir el encuadre.El código
precision highp float;
void main(){
vec2 uv=(gl_FragCoord.xy*2.0 - R)/R.y;
float zoom=1.6;
vec2 c=uv*zoom+vec2(-0.5,0.0);
vec2 z=c;
const int IT=5;
for(int i=0;i<IT;i++){
z=vec2(z.x*z.x-z.y*z.y, 2.0*z.x*z.y)+c;
}
float m=length(z);
float tone=log(1.0+m);
vec3 col=0.5+0.5*cos(vec3(0.0,2.3,4.6)+tone*3.0);
col*=smoothstep(40.0,0.0,m)*0.8+0.12;
gl_FragColor=vec4(col,1.0);
}