diff --git a/Fragment.glsl b/Fragment.glsl index bbe365f..12f1b3a 100644 --- a/Fragment.glsl +++ b/Fragment.glsl @@ -1,4 +1,5 @@ #version 330 core + out vec4 pixColor; uniform int iterationCount; @@ -6,22 +7,22 @@ uniform float divergeThreshold; in vec2 complexPos; -vec2 mul(in vec2 a, in vec2 b) { - return vec2(a.x * b.x - a.y * b.y, a.y * b.x + a.x * b.y); -} - vec3 getColor(in float value){ vec3 red = vec3(0.5, 0, 0); vec3 blue = vec3(0, 0, 0.5); return value * red + (1 - value) * blue; } +vec2 square(in vec2 c){ + return vec2(c.x * c.x - c.y * c.y, 2 * c.x * c.y); +} + void main(){ vec2 z; float stepsNeeded = 0; while (stepsNeeded < iterationCount && length(z) < divergeThreshold){ - z = mul(z, z) + complexPos; + z = square(z) + complexPos; ++stepsNeeded; }