summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--examples/text/resources/shaders/glsl330/sdf.fs6
1 files changed, 3 insertions, 3 deletions
diff --git a/examples/text/resources/shaders/glsl330/sdf.fs b/examples/text/resources/shaders/glsl330/sdf.fs
index 44d33e9b..45e1cabe 100644
--- a/examples/text/resources/shaders/glsl330/sdf.fs
+++ b/examples/text/resources/shaders/glsl330/sdf.fs
@@ -12,14 +12,14 @@ uniform vec4 colDiffuse;
out vec4 finalColor;
// NOTE: Add here your custom variables
-const float smoothing = 1.0/16.0;
void main()
{
// Texel color fetching from texture sampler
// NOTE: Calculate alpha using signed distance field (SDF)
- float distance = texture(texture0, fragTexCoord).a;
- float alpha = smoothstep(0.5 - smoothing, 0.5 + smoothing, distance);
+ float distanceFromOutline = texture(texture0, fragTexCoord).a - 0.5;
+ float distanceChangePerFragment = length(vec2(dFdx(distanceFromOutline), dFdy(distanceFromOutline)));
+ float alpha = smoothstep(-distanceChangePerFragment, distanceChangePerFragment, distanceFromOutline);
// Calculate final fragment color
finalColor = vec4(fragColor.rgb, fragColor.a*alpha);