28 lines
672 B
GLSL
28 lines
672 B
GLSL
#version 450
|
|
|
|
layout(location = 1) in vec2 texCoord;
|
|
|
|
layout(location = 0) out vec4 outColor;
|
|
|
|
layout(set = 2, binding = 0) uniform sampler2D texSampler;
|
|
|
|
layout(set = 3, binding = 0) uniform TextConfig
|
|
{
|
|
vec4 textColor;
|
|
vec4 backgroundColor;
|
|
float threshold;
|
|
float smoothing;
|
|
} textConfig;
|
|
|
|
void main()
|
|
{
|
|
float distance = texture(texSampler, texCoord).r;
|
|
float alpha = smoothstep(textConfig.threshold - textConfig.smoothing, textConfig.threshold + textConfig.smoothing, distance);
|
|
outColor = vec4(textConfig.textColor) * alpha;
|
|
|
|
if (textConfig.backgroundColor.a != 0)
|
|
{
|
|
outColor = mix(textConfig.backgroundColor, outColor, alpha);
|
|
}
|
|
}
|