Text to Image
// Alien Fractal Shader - drop in Shadertoy
void mainImage(out vec4 fragColor, in vec2 fragCoord)
{
vec2 uv = (fragCoord - iResolution.xy * 0.5) / iResolution.y;
vec2 z = uv;
float t = iTime * 0.2;
float phi = (1.0 + sqrt(5.0)) * 0.5; // golden ratio
float acc = 0.0;
float m = 0.0;
for (int i = 0; i < 80; i++) {
z = (pow(z, vec2(phi)) * vec2(cos(3.14 * z.y), sin(3.14 * z.x))) /
(1.0 + sin(dot(z, z) + t));
float d = length(z);
acc += exp(-d * 3.0);
m += d;
}
float hue = mod(m * 0.1 + t, 1.0);
float sat = 0.8;
float val = acc * 0.8;
// HSV to RGB
vec3 c = vec3(hue, sat, val);
vec3 rgb = clamp(abs(mod(c.x*6.0 + vec3(0.0,4.0,2.0),6.0)-3.0)-1.0,0.0,1.0);
rgb = c.z * mix(vec3(1.0), rgb, c.y);
fragColor = vec4(rgb, 1.0);
}
vec2 uv = fragCoord.xy / iResolution.xy;
vec2 z = (uv - 0.5) * 2.0;
float zoom = 1.0 + sin(iTime * 0.2) * 0.5;
z *= zoom;
// Fractal-like distortion
for (int i = 0; i < 10; i++) {
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + uv;
}
// Sample tree/mushroom texture
vec4 tex = texture(iChannel0, fract(z));
fragColor = tex;