better square function

master
Benjamin Kraft 3 years ago
parent 9f7f9e4124
commit 6eeca2096c
  1. 11
      Fragment.glsl

@ -1,4 +1,5 @@
#version 330 core #version 330 core
out vec4 pixColor; out vec4 pixColor;
uniform int iterationCount; uniform int iterationCount;
@ -6,22 +7,22 @@ uniform float divergeThreshold;
in vec2 complexPos; 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 getColor(in float value){
vec3 red = vec3(0.5, 0, 0); vec3 red = vec3(0.5, 0, 0);
vec3 blue = vec3(0, 0, 0.5); vec3 blue = vec3(0, 0, 0.5);
return value * red + (1 - value) * blue; 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(){ void main(){
vec2 z; vec2 z;
float stepsNeeded = 0; float stepsNeeded = 0;
while (stepsNeeded < iterationCount && length(z) < divergeThreshold){ while (stepsNeeded < iterationCount && length(z) < divergeThreshold){
z = mul(z, z) + complexPos; z = square(z) + complexPos;
++stepsNeeded; ++stepsNeeded;
} }

Loading…
Cancel
Save