Răsfoiți Sursa

Added zoom independent sharp edges to the SDF text example. (#1727)

Stephan Soller 4 ani în urmă
părinte
comite
7f1068ef96
1 a modificat fișierele cu 3 adăugiri și 3 ștergeri
  1. 3 3
      examples/text/resources/shaders/glsl330/sdf.fs

+ 3 - 3
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);