aboutsummaryrefslogtreecommitdiff
path: root/raylib/examples/text/resources/shaders/glsl330
diff options
context:
space:
mode:
authorUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
committerUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
commit1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch)
treef5d692d046868261275c7430a624c3ea9ed75d3d /raylib/examples/text/resources/shaders/glsl330
parenta89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff)
A lot has certainly happened!
Diffstat (limited to 'raylib/examples/text/resources/shaders/glsl330')
-rw-r--r--raylib/examples/text/resources/shaders/glsl330/alpha_discard.fs19
-rw-r--r--raylib/examples/text/resources/shaders/glsl330/sdf.fs26
2 files changed, 45 insertions, 0 deletions
diff --git a/raylib/examples/text/resources/shaders/glsl330/alpha_discard.fs b/raylib/examples/text/resources/shaders/glsl330/alpha_discard.fs
new file mode 100644
index 0000000..d2134a6
--- /dev/null
+++ b/raylib/examples/text/resources/shaders/glsl330/alpha_discard.fs
@@ -0,0 +1,19 @@
+#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;
+
+void main()
+{
+ vec4 texelColor = texture(texture0, fragTexCoord);
+ if (texelColor.a == 0.0) discard;
+ finalColor = texelColor * fragColor * colDiffuse;
+}
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);
+}