A pile of gross hacks, but works in a browser so it's all justified.
[mandelwow.git] / mandelwow.frag
1 #version 100
2 precision highp float;
3 varying vec2 c;
4 varying vec2 z;
5
6 void main() {
7     float zx = z.x;
8     float zy = z.y;
9     const int maxiter = 64;
10     for (int iter = maxiter; iter > 0; iter--) {
11         float zx2 = zx * zx;
12         float zy2 = zy * zy;
13         if (zx2 * zy2 > 4.0) {
14           float index = float(iter) / float(maxiter);
15           gl_FragColor = vec4(index, 0.1, 1.0 - index / 2.0, 0.8 - index);
16           return;
17         }
18         zy = zx * zy * 2.0 + c.y;
19         zx = zx2 - zy2 + c.x;
20     }
21     gl_FragColor = vec4((sin(z.y) + 1.0) / 4.0,
22                         (sin(z.x) + 1.0) / 4.0,
23                         (sin(c.x) + 1.0) / 4.0,
24                         1.0);
25 }