diff --git a/project.godot b/project.godot index 3345a9ef..74bb0bbb 100644 --- a/project.godot +++ b/project.godot @@ -25,10 +25,10 @@ config/map_tile_size=256 config/map_minimum_zoom=5 config/map_maximum_zoom=19 interfer/center_offset=Vector2(200, 225) -interfer/default_color0=Vector3(0.38, 0.47, 0.51) -interfer/default_color1=Vector3(0.39, 0.44, 0.5) -interfer/select_color=Vector3(1, 1, 1) -interfer/interfer_color=Vector3(0.58, 0.47, 0.51) +interfer/default_color0=Color(0.38, 0.47, 0.51, 1) +interfer/default_color1=Color(0.39, 0.44, 0.5, 1) +interfer/select_color=Color(1, 1, 1, 1) +interfer/interfer_color=Color(0.58, 0.47, 0.51, 1) interfer/resend_timeout=1000.0 config/external_cu=false config/unit_rr_request_period=5.0 diff --git a/scenes/diagram/diagram.gd b/scenes/diagram/diagram.gd index 862f3855..accc1a84 100644 --- a/scenes/diagram/diagram.gd +++ b/scenes/diagram/diagram.gd @@ -2,7 +2,7 @@ class_name Diagram extends Sprite2D const NUM_OF_RANGE = 7 const NUM_OF_DIRECTIONS = 4 -var fs_default_colors: Array ## Цвета по умолчанию для блоков ФС. +var fs_default_colors: Array[Color] ## Цвета по умолчанию для блоков ФС. @export var SecZap: PackedScene @@ -93,8 +93,8 @@ func set_view_mode(val: int): ## Закрашивание по умолчанию блоков ФС цветами из настроек. func set_def_colors(): - var color0: Vector3 = ProjectSettings.get_setting('application/interfer/default_color0', Vector3(0.38, 0.47, 0.51)) - var color1: Vector3 = ProjectSettings.get_setting('application/interfer/default_color1', Vector3(0.39, 0.44, 0.50)) + var color0: Color = ProjectSettings.get_setting('application/interfer/default_color0', Color(0.38, 0.47, 0.51, 1.0)) + var color1: Color = ProjectSettings.get_setting('application/interfer/default_color1', Color(0.39, 0.44, 0.50, 1.0)) var col_arr: Array = [color0, color1] var col = false for i in NUM_OF_RANGE: diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 550efc6f..0fbe42f1 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -449,8 +449,8 @@ func set_fs_color(ecm): func update_fs_colors(): var fs_colors = $canvas.fs_default_colors.duplicate() - var color_ecm: Vector3 = ProjectSettings.get_setting('application/interfer/interfer_color', Vector3(0.58, 0.47, 0.51)) - var color_select: Vector3 = ProjectSettings.get_setting('application/interfer/select_color', Vector3(1.0, 1.0, 1.0)) + var color_ecm: Color = ProjectSettings.get_setting('application/interfer/interfer_color', Color(0.58, 0.47, 0.51, 1.0)) + var color_select: Color = ProjectSettings.get_setting('application/interfer/select_color', Color(1.0, 1.0, 1.0, 1.0)) for key in fs_active.keys(): fs_colors[key] = color_ecm for key in fs_selected.keys(): diff --git a/shaders/antenas.tres b/shaders/antenas.tres index 0c40d21f..74c1d79c 100644 --- a/shaders/antenas.tres +++ b/shaders/antenas.tres @@ -1,4 +1,4 @@ -[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://s6xe8igevnv2"] +[gd_resource type="ShaderMaterial" load_steps=2 format=4 uid="uid://s6xe8igevnv2"] [sub_resource type="Shader" id="1"] code = "shader_type canvas_item; @@ -15,6 +15,7 @@ uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4); uniform float radius_inner_0 = RADIUS_INNER_0; uniform float radius_inner_1 = RADIUS_INNER_1; uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */ +uniform float alpha: hint_range(0.0, 1.0) = 0.5; uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */ const int ant_band_count_0 = 2; @@ -41,8 +42,7 @@ const float ant_band_r1_4[] = {450.0, 530.0}; const float ant_band_r1_5[] = {500.0, 540.0}; const float ant_band_r1_6[] = {550.0, 550.0}; -uniform vec3 ant_band_c[28]; - +uniform vec4 ant_band_c[28]; const float d4 = 90.0; const float ds = 1.0; @@ -76,11 +76,9 @@ void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, inout index--; j = index - 3; } - col.x = ant_band_c[j].x; - col.y = ant_band_c[j].y; - col.z = ant_band_c[j].z; + col.rgb = ant_band_c[j].rgb; index++; - col.a = 0.5; + col.a = alpha; float v = float(i & 1); vec4 color = v * col + (1.0f - v) * col; sector(c, uv, p0, float(i) * da, da, r0, r1, color); @@ -98,7 +96,7 @@ void fragment() { ivec2 isz = textureSize(TEXTURE, 0); vec2 uv = UV * vec2(float(isz.x), float(isz.y)); // координаты текущей точки в пикселях - COLOR = vec4(0, 0, 0, 0); //texture(TEXTURE, UV); // Цвет текущей точки + COLOR = vec4(0, 0, 0, 0); int index = 0; // Сетка антенн antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0[mode], ant_band_r1_0[mode], index); @@ -120,5 +118,6 @@ shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255) shader_parameter/radius_inner_0 = 200.0 shader_parameter/radius_inner_1 = 480.0 shader_parameter/radius_outter = 550.0 +shader_parameter/alpha = 0.5 shader_parameter/mode = 0 -shader_parameter/ant_band_c = PackedVector3Array(0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5) +shader_parameter/ant_band_c = PackedVector4Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) diff --git a/shaders/sector.gdshader b/shaders/sector.gdshader index f3783bf5..d73ad643 100644 --- a/shaders/sector.gdshader +++ b/shaders/sector.gdshader @@ -14,8 +14,8 @@ instance uniform float inner_clip: hint_range(0.0, 0.125) = 0.045; const vec2 center = vec2(0.125, 0.125); /* Центр. Должен быть в (0.5, 0.5), но это не так */ -const float dsa = 0.0025; /* Относительное расстояние на котором выполняется сглаживание краёв по радиальным линиям */ -const float dsr = 0.00025; /* Относительное расстояние на котором выполняется сглаживание краёв по круговым линиям */ +const float dsa = 0.003; /* Относительное расстояние на котором выполняется сглаживание краёв по радиальным линиям */ +const float dsr = 0.0003; /* Относительное расстояние на котором выполняется сглаживание краёв по круговым линиям */ vec4 sector(vec4 c, vec2 uv_pos, float r0, float r1, float w)