LiteCraft/src/main/resources/shaders/fontFragmentShader.glsl

34 lines
770 B
GLSL

#version 330
in vec2 pass_textureCoords;
out vec4 out_colour;
uniform vec3 colour;
uniform sampler2D fontAtlas;
const float width = 0;
const float edge = 1.0;
uniform float borderWidth;
uniform float borderEdge;
uniform vec2 offset;
uniform vec3 outlineColour;
void main(void){
float distance = 1.0 - texture(fontAtlas, pass_textureCoords).a;
float alpha = 1.0 - smoothstep(width, width + edge, distance);
float distance2 = 1.0 - texture(fontAtlas, pass_textureCoords + offset).a;
float outlineAlpha = 1.0 - smoothstep(borderWidth, borderWidth + borderEdge, distance2);
float overallAlpha = alpha + (1.0 - alpha) * outlineAlpha;
vec3 overallColour = mix(outlineColour, colour, alpha / overallAlpha);
out_colour = vec4(overallColour, overallAlpha);
}