Доработка. Цвет антенн теперь Color, вместо Vector3
This commit is contained in:
@@ -25,10 +25,10 @@ config/map_tile_size=256
|
|||||||
config/map_minimum_zoom=5
|
config/map_minimum_zoom=5
|
||||||
config/map_maximum_zoom=19
|
config/map_maximum_zoom=19
|
||||||
interfer/center_offset=Vector2(200, 225)
|
interfer/center_offset=Vector2(200, 225)
|
||||||
interfer/default_color0=Vector3(0.38, 0.47, 0.51)
|
interfer/default_color0=Color(0.38, 0.47, 0.51, 1)
|
||||||
interfer/default_color1=Vector3(0.39, 0.44, 0.5)
|
interfer/default_color1=Color(0.39, 0.44, 0.5, 1)
|
||||||
interfer/select_color=Vector3(1, 1, 1)
|
interfer/select_color=Color(1, 1, 1, 1)
|
||||||
interfer/interfer_color=Vector3(0.58, 0.47, 0.51)
|
interfer/interfer_color=Color(0.58, 0.47, 0.51, 1)
|
||||||
interfer/resend_timeout=1000.0
|
interfer/resend_timeout=1000.0
|
||||||
config/external_cu=false
|
config/external_cu=false
|
||||||
config/unit_rr_request_period=5.0
|
config/unit_rr_request_period=5.0
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ class_name Diagram extends Sprite2D
|
|||||||
|
|
||||||
const NUM_OF_RANGE = 7
|
const NUM_OF_RANGE = 7
|
||||||
const NUM_OF_DIRECTIONS = 4
|
const NUM_OF_DIRECTIONS = 4
|
||||||
var fs_default_colors: Array ## Цвета по умолчанию для блоков ФС.
|
var fs_default_colors: Array[Color] ## Цвета по умолчанию для блоков ФС.
|
||||||
|
|
||||||
@export var SecZap: PackedScene
|
@export var SecZap: PackedScene
|
||||||
|
|
||||||
@@ -93,8 +93,8 @@ func set_view_mode(val: int):
|
|||||||
|
|
||||||
## Закрашивание по умолчанию блоков ФС цветами из настроек.
|
## Закрашивание по умолчанию блоков ФС цветами из настроек.
|
||||||
func set_def_colors():
|
func set_def_colors():
|
||||||
var color0: Vector3 = ProjectSettings.get_setting('application/interfer/default_color0', Vector3(0.38, 0.47, 0.51))
|
var color0: Color = ProjectSettings.get_setting('application/interfer/default_color0', Color(0.38, 0.47, 0.51, 1.0))
|
||||||
var color1: Vector3 = ProjectSettings.get_setting('application/interfer/default_color1', Vector3(0.39, 0.44, 0.50))
|
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_arr: Array = [color0, color1]
|
||||||
var col = false
|
var col = false
|
||||||
for i in NUM_OF_RANGE:
|
for i in NUM_OF_RANGE:
|
||||||
|
|||||||
@@ -449,8 +449,8 @@ func set_fs_color(ecm):
|
|||||||
|
|
||||||
func update_fs_colors():
|
func update_fs_colors():
|
||||||
var fs_colors = $canvas.fs_default_colors.duplicate()
|
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_ecm: Color = ProjectSettings.get_setting('application/interfer/interfer_color', Color(0.58, 0.47, 0.51, 1.0))
|
||||||
var color_select: Vector3 = ProjectSettings.get_setting('application/interfer/select_color', Vector3(1.0, 1.0, 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():
|
for key in fs_active.keys():
|
||||||
fs_colors[key] = color_ecm
|
fs_colors[key] = color_ecm
|
||||||
for key in fs_selected.keys():
|
for key in fs_selected.keys():
|
||||||
|
|||||||
@@ -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"]
|
[sub_resource type="Shader" id="1"]
|
||||||
code = "shader_type canvas_item;
|
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_0 = RADIUS_INNER_0;
|
||||||
uniform float radius_inner_1 = RADIUS_INNER_1;
|
uniform float radius_inner_1 = RADIUS_INNER_1;
|
||||||
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
|
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 */
|
uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */
|
||||||
|
|
||||||
const int ant_band_count_0 = 2;
|
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_5[] = {500.0, 540.0};
|
||||||
const float ant_band_r1_6[] = {550.0, 550.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 d4 = 90.0;
|
||||||
const float ds = 1.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--;
|
index--;
|
||||||
j = index - 3;
|
j = index - 3;
|
||||||
}
|
}
|
||||||
col.x = ant_band_c[j].x;
|
col.rgb = ant_band_c[j].rgb;
|
||||||
col.y = ant_band_c[j].y;
|
|
||||||
col.z = ant_band_c[j].z;
|
|
||||||
index++;
|
index++;
|
||||||
col.a = 0.5;
|
col.a = alpha;
|
||||||
float v = float(i & 1);
|
float v = float(i & 1);
|
||||||
vec4 color = v * col + (1.0f - v) * col;
|
vec4 color = v * col + (1.0f - v) * col;
|
||||||
sector(c, uv, p0, float(i) * da, da, r0, r1, color);
|
sector(c, uv, p0, float(i) * da, da, r0, r1, color);
|
||||||
@@ -98,7 +96,7 @@ void fragment()
|
|||||||
{
|
{
|
||||||
ivec2 isz = textureSize(TEXTURE, 0);
|
ivec2 isz = textureSize(TEXTURE, 0);
|
||||||
vec2 uv = UV * vec2(float(isz.x), float(isz.y)); // координаты текущей точки в пикселях
|
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;
|
int index = 0;
|
||||||
// Сетка антенн
|
// Сетка антенн
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0[mode], ant_band_r1_0[mode], index);
|
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_0 = 200.0
|
||||||
shader_parameter/radius_inner_1 = 480.0
|
shader_parameter/radius_inner_1 = 480.0
|
||||||
shader_parameter/radius_outter = 550.0
|
shader_parameter/radius_outter = 550.0
|
||||||
|
shader_parameter/alpha = 0.5
|
||||||
shader_parameter/mode = 0
|
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)
|
||||||
|
|||||||
@@ -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 vec2 center = vec2(0.125, 0.125); /* Центр. Должен быть в (0.5, 0.5), но это не так */
|
||||||
const float dsa = 0.0025; /* Относительное расстояние на котором выполняется сглаживание краёв по радиальным линиям */
|
const float dsa = 0.003; /* Относительное расстояние на котором выполняется сглаживание краёв по радиальным линиям */
|
||||||
const float dsr = 0.00025; /* Относительное расстояние на котором выполняется сглаживание краёв по круговым линиям */
|
const float dsr = 0.0003; /* Относительное расстояние на котором выполняется сглаживание краёв по круговым линиям */
|
||||||
|
|
||||||
|
|
||||||
vec4 sector(vec4 c, vec2 uv_pos, float r0, float r1, float w)
|
vec4 sector(vec4 c, vec2 uv_pos, float r0, float r1, float w)
|
||||||
|
|||||||
Reference in New Issue
Block a user