#version 330 core in vec2 vUV; // [-1,1] range — distance from blob centre out vec4 fragColor; uniform vec3 uColor; uniform float uFalloff; // gaussian width: larger = tighter core void main() { float d = length(vUV); if (d > 1.0) discard; float intensity = exp(-uFalloff * d * d); fragColor = vec4(uColor * intensity, intensity); }