-#version 140
+#version 100
precision highp float;
-in vec2 c;
-in vec2 z;
-out vec4 f_color;
+varying vec2 c;
+varying vec2 z;
void main() {
float zx = z.x;
float zy = z.y;
- int maxiter = 64;
- int iter = maxiter;
- while (iter > 0) {
+ const int maxiter = 64;
+ for (int iter = maxiter; iter > 0; iter--) {
float zx2 = zx * zx;
float zy2 = zy * zy;
if (zx2 * zy2 > 4.0) {
float index = float(iter) / float(maxiter);
- f_color = vec4(index, 0.1, 1.0 - index / 2, 0.8 - index);
+ gl_FragColor = vec4(index, 0.1, 1.0 - index / 2.0, 0.8 - index * index);
return;
}
zy = zx * zy * 2.0 + c.y;
zx = zx2 - zy2 + c.x;
- iter -= 1;
}
- f_color = vec4((sin(z.y) + 1.0) / 4,
- (sin(z.x) + 1.0) / 4,
- (sin(c.x) + 1.0) / 4,
- 1.0);
+ gl_FragColor = vec4((sin(z.y) + 1.0) / 4.0,
+ (sin(z.x) + 1.0) / 4.0,
+ (sin(c.x) + 1.0) / 4.0,
+ 1.0);
}