xxxxxxxxxx
29
precision mediump float;
varying vec2 pos;
const int num_circles = 100;
uniform vec3 circles[num_circles];
void main() {
// Single circle SDF
vec3 circle = vec3(0.5, 0.5, 0.3);
float d = length(pos - circle.xy) - circle.z;
// Sharp circle
// d = step(0., d);
// Smooth circle
d = smoothstep(0., 0.01, d);
gl_FragColor = vec4(d, d, d, 1.);
// Multi circle SDF
// float colour = 1.;
// for(int i = 0; i < num_circles; i ++) {
// float d = length(pos - circles[i].xy) - circles[i].z;
// d = step(0., d);
// colour *= d;
// }
// gl_FragColor = vec4(colour, colour, colour, 1.);
}