Files
2023-01-14 07:57:47 -08:00

42 lines
959 B
GLSL

#version 330
uniform float anti_alias_width;
uniform float glow_factor;
in vec4 color;
in float radius;
in vec2 center;
in vec2 point;
in float scaled_aaw;
out vec4 frag_color;
#INSERT finalize_color.glsl
void main() {
vec2 diff = point - center;
float dist = length(diff);
float signed_dist = dist - radius;
if (signed_dist > 0.5 * scaled_aaw){
discard;
}
frag_color = color;
if(gloss > 0 || shadow > 0){
vec3 normal = vec3(diff / radius, sqrt(1 - (dist * dist) / (radius * radius)));
frag_color = finalize_color(
frag_color,
vec3(point.xy, 0.0),
normal,
light_source_position,
camera_position,
reflectiveness,
gloss,
shadow
);
}
if(glow_factor > 0){
frag_color.a *= pow(1 - dist / radius, glow_factor);
}
frag_color.a *= smoothstep(0.5, -0.5, signed_dist / scaled_aaw);
}