Files
tbd-station-14/Resources/Shaders/cooldown.swsl
2020-06-12 18:53:41 +02:00

25 lines
667 B
Plaintext

light_mode unshaded;
const float PI = 3.14159265;
uniform float progress = 0.0;
void fragment() {
vec4 col = texture(TEXTURE, UV);
vec2 center = vec2(0.5,0.5);
vec2 delta = UV.xy - center;
float angle = atan(delta.x, -delta.y) + PI;
float dist = length(delta);
float dist_fwidth = fwidth(dist) * 0.67;
float dist_alpha = smoothstep(0.1-dist_fwidth, 0.1, abs(dist-0.35));
float angle_delta = (progress * PI * 2) - angle;
float arc_length = angle_delta * dist;
float angle_alpha = progress > 0 ? smoothstep(dist_fwidth, 0.0, arc_length) : 0.0;
COLOR = vec4(col.xyz, 1-max(dist_alpha, angle_alpha));
}