precision mediump float;

varying vec2 TexCoord;

uniform sampler2D uText;
uniform vec4 uColor;
//uniform float uOutlineWidth; // Убрано дефолтное значение

void main() {
    float dist = texture2D(uText, TexCoord).r;
	
	float uOutlineWidth = 0.7;
    
    float outline = smoothstep(0.5 - uOutlineWidth, 0.5 + uOutlineWidth, dist);
    float text = smoothstep(0.5, 0.6, dist); // 0.5 + 0.1 вычислено заранее
    float glow = exp(-pow(dist - 0.5, 2.0) / 0.02);
    
    gl_FragColor = vec4(uColor.rgb * (text + glow * 0.6), uColor.a * outline);
}