From 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 Mon Sep 17 00:00:00 2001 From: Uneven Prankster Date: Sun, 15 Oct 2023 21:28:29 -0300 Subject: A lot has certainly happened! --- .../examples/text/resources/shaders/glsl330/sdf.fs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 raylib/examples/text/resources/shaders/glsl330/sdf.fs (limited to 'raylib/examples/text/resources/shaders/glsl330/sdf.fs') diff --git a/raylib/examples/text/resources/shaders/glsl330/sdf.fs b/raylib/examples/text/resources/shaders/glsl330/sdf.fs new file mode 100644 index 0000000..545f450 --- /dev/null +++ b/raylib/examples/text/resources/shaders/glsl330/sdf.fs @@ -0,0 +1,26 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Texel color fetching from texture sampler + // NOTE: Calculate alpha using signed distance field (SDF) + 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); +} -- cgit v1.2.3