diff --git a/shaders/bip.gdshader b/shaders/bip.gdshader index d50f71c3..17eb2315 100644 --- a/shaders/bip.gdshader +++ b/shaders/bip.gdshader @@ -4,23 +4,24 @@ shader_type canvas_item; /* Закрашенная окружность */ uniform float tick_update = 0.0; /* Время последнего обновления, мс */ +const float red_channel = 0.972549; +const float green_channel = 0.12549; +const float blue_channel = 0.411765; const float time_delta = 0.5; /* Время вспышки при обновлении, c */ const float ds = 0.01; /* Относительное расстояние на котором выполняется сглаживание краёв */ const vec2 center = vec2(0.125, 0.125); /* Центр должен быть в (0.5, 0.5), но это не так */ const float radius = 0.075 - ds * 2.0; /* Радиус должен быть 0.5, но это не так */ -const float alpha_offset = 0.25; /* Изменние скорости альфа канала */ +const float alpha_offset = 0.5; /* Изменние скорости альфа канала */ +const float alpha_main = 1.0; void fragment() { float time_now = TIME; - float alpha = 1.0; + float alpha = 0.0; if ((time_now - tick_update) < time_delta) { - alpha = (time_delta - (time_now - tick_update)) * alpha_offset; + alpha = time_delta - (time_now - tick_update) * alpha_offset; } - else{ - alpha = 0.0; - } - vec4 color = vec4(0.972549, 0.12549, 0.411765, 1.0 - alpha); + vec4 color = vec4(red_channel, green_channel, blue_channel, alpha_main - alpha); COLOR = color * smooth_px(length(UV - center), radius, ds); }