From cff97b2edc25870afd9f0e32a632825354e6f79e Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 27 Sep 2024 10:43:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BC=D0=B5=D1=80=D1=86=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D1=86=D0=B5=D0=BB=D0=B5=D0=B9=20=D0=BF=D1=80=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/bip/bip.tscn | 2 -- shaders/bip.gdshader | 16 +++++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scenes/bip/bip.tscn b/scenes/bip/bip.tscn index 4e64bd1..c296aff 100644 --- a/scenes/bip/bip.tscn +++ b/scenes/bip/bip.tscn @@ -6,8 +6,6 @@ [sub_resource type="ShaderMaterial" id="ShaderMaterial_2dulj"] shader = ExtResource("2_rt0la") -shader_parameter/color = Color(0.972549, 0.12549, 0.411765, 1) -shader_parameter/color_up = Color(1, 1, 1, 1) shader_parameter/tick_update = 0.0 [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_w5pye"] diff --git a/shaders/bip.gdshader b/shaders/bip.gdshader index 177cef5..b2671d2 100644 --- a/shaders/bip.gdshader +++ b/shaders/bip.gdshader @@ -3,22 +3,24 @@ shader_type canvas_item; #include "res://shaders/tools.gdshaderinc" /* Закрашенная окружность */ -uniform vec4 color: source_color = vec4(1, 1, 1, 1); -uniform vec4 color_up: source_color = vec4(1, 1, 1, 1); /* Цвет вспышки при обновлении */ -uniform float tick_update = 0; /* Время последнего обновления, мс */ +uniform float tick_update = 0.0; /* Время последнего обновления, мс */ 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.15; /* Изменние скорости альфа канала */ void fragment() { - COLOR = color * smooth_px(length(UV - center), radius, ds); float time_now = TIME; + float alpha = 1.0; if ((time_now - tick_update) < time_delta) { - COLOR = COLOR - vec4(0.0, 0.0, 0.0, (time_delta - (time_now - tick_update)) * 0.5); + 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); + COLOR = color * smooth_px(length(UV - center), radius, ds); }