forgot to add the new shaders
[vrfileman] / sdr / dfont.p.glsl
1 uniform sampler2D tex;
2 uniform float smoothness;
3
4 void main()
5 {
6         const vec2 pix_sz = vec2(1.0 / 512.0, 1.0 / 256.0);     // TODO: uniform
7
8         vec2 uv = gl_TexCoord[0].st;
9         float dist = texture2D(tex, uv).a;
10
11         float dfdu = texture2D(tex, uv + vec2(pix_sz.x, 0.0)).a - dist;
12         float dfdv = texture2D(tex, uv + vec2(0.0, pix_sz.y)).a - dist;
13         vec2 grad = normalize(vec2(dfdu, dfdv));
14
15         float glyph = smoothstep(0.47 - smoothness, 0.47 + smoothness, dist);
16         float outline = smoothstep(0.54 - smoothness, 0.54 + smoothness, dist);
17
18         float beveldot = max(dot(grad, normalize(vec2(1.0, 1.0))), 0.0);
19         vec3 bevelcol = mix(vec3(0.05, 0.1, 0.6), vec3(1.0, 0.2, 0.8), beveldot);
20
21         gl_FragColor.rgb = mix(bevelcol, vec3(1.0), outline);
22         gl_FragColor.a = glyph;
23 }