summaryrefslogtreecommitdiffstats
path: root/src/shader.frag
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader.frag')
-rw-r--r--src/shader.frag27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/shader.frag b/src/shader.frag
index 7c5b0e7..cad317c 100644
--- a/src/shader.frag
+++ b/src/shader.frag
@@ -1,9 +1,34 @@
#version 450
layout(location = 0) in vec3 fragColor;
+layout(location = 1) in vec2 fragPos;
layout(location = 0) out vec4 outColor;
+// void main() {
+// outColor = vec4(fragColor, 1.0);
+// }
+vec3 mandel(vec2 z0) {
+ float k = 0.0;
+ vec2 z = vec2(0.0);
+ for(int i = 0; i < 420; ++i) {
+ z = vec2(z.x*z.x-z.y*z.y, z.x*z.y*2.0) + z0;
+ if (length(z) > 20.0) break;
+ k += 1.0;
+ }
+ float mu = k + 1.0 - log2(log(length(z)));
+ return sin(mu*0.1 + vec3(0.0,0.5,1.0));
+}
void main() {
- outColor = vec4(fragColor, 1.0);
+ float ar = fragPos.x / fragPos.y;
+ vec2 uv = gl_FragCoord.xy / fragPos.yy - vec2(0.66 * ar, 0.5);
+ //uv = uv * 2.0 + vec2(-0.3, 1.0);
+ float p = 30.0;
+ float t = mod(13.0, p);
+ if (t > p/2.0) t = p - t;
+ float scale = 0.5 + pow(4.0, t);
+ vec2 offset = vec2(-1.36799, .01);
+ uv += offset*scale;
+ uv /= scale;
+ outColor = vec4(mandel(uv), 1.0);
}