This commit is contained in:
sasha80
2023-04-18 09:25:05 +03:00
parent b56819125d
commit fd93e4f215
8 changed files with 76 additions and 142 deletions

View File

@@ -43,9 +43,9 @@ uniform float ap_ant_w = 12.0;
uniform vec2 tr0 = vec2(0, 0);
uniform vec2 tr1 = vec2(0, 0);
uniform vec2 tr2 = vec2(0, 0);
uniform float sec_var = 0.0;
// Массивы не работают
// uniform int band_ants[3]; // количество антенн, радиус внутренний, радиус внешний, подстройка по углу
uniform int band_ants[3]; // количество антенн, радиус внутренний, радиус внешний, подстройка по углу
float SMOOTH(float r, float R)
{
@@ -90,6 +90,7 @@ vec3 radar_scan_line(vec2 uv, vec2 center, float time, float radius, vec3 color)
else return vec3(0, 0, 0);
}
void sector(inout vec3 c, vec2 uv, vec2 center, float a, float da, float r0, float r1, vec3 color)
{
float l = distance(center, uv);
@@ -105,6 +106,32 @@ void sector(inout vec3 c, vec2 uv, vec2 center, float a, float da, float r0, flo
}
void rotate_uv(inout vec2 uv, float a)
{
float mid = 0.5;
uv.x = cos(a) * (uv.x - mid) + sin(a) * (uv.y - mid) + mid;
uv.y = cos(a) * (uv.x - mid) - sin(a) * (uv.x - mid) + mid;
}
void sector2(inout vec3 c, vec2 uv, vec2 center, float a, float da, float r0, float r1, vec3 color)
{
rotate_uv(uv, 0.0);
float l = distance(center, uv);
vec2 d = uv - center;
float sf = 500.0;
float theta = atan(d.x, d.y) * sf;
da /= 2.0;
float a0 = radians(a - da);
float a1 = radians(a + da);
float va = SMOOTH(a0 * sf, theta) - SMOOTH(a1 * sf, theta);
float vr = SMOOTH(r0, l) - SMOOTH(r1, l);
c += color * sqrt(va * vr);
}
void circle(inout vec3 c, vec2 uv, vec2 p0, float radius, float width, vec3 color)
{
float r = length(uv - p0);
@@ -271,10 +298,10 @@ void fragment()
//line_r(COLOR.rgb, uv, pc0, 225, 580, blue1.rgb, 1.0);
//line_r(COLOR.rgb, uv, pc0, 315, 580, blue1.rgb, 1.0);
//sector(COLOR.rgb, uv, pc0, sec_forward, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_back, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_left, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_right, ap_ant_w, 280, 580, red.rgb);
sector2(COLOR.rgb, uv, pc0, sec_var, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_back, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_left, ap_ant_w, 280, 580, red.rgb);
//sector(COLOR.rgb, uv, pc0, sec_right, ap_ant_w, 280, 580, red.rgb);
//antenas(COLOR.rgb, uv, pc0, ants_count, d6 / 2.0, d7 / 2.0, blue0.rgb, blue1.rgb, 0.3, 7.5);
antenas(COLOR.rgb, uv, pc0, 2, 220, 280, blue1.rgb, blue0.rgb, 0.4, 0);
@@ -283,6 +310,10 @@ void fragment()
antenas(COLOR.rgb, uv, pc0, 2, 400, 460, blue0.rgb, blue1.rgb, 0.4, 0);
antenas(COLOR.rgb, uv, pc0, 2, 460, 520, blue1.rgb, blue0.rgb, 0.4, 0);
antenas(COLOR.rgb, uv, pc0, 2, 520, 580, blue0.rgb, blue1.rgb, 0.4, 0);
//antenas(COLOR.rgb, uv, pc0, band_ants[0], 100, 120, blue0.rgb, blue1.rgb, 0.4, 0);
//antenas(COLOR.rgb, uv, pc0, band_ants[1], 125, 150, blue0.rgb, blue1.rgb, 0.4, 0);
//antenas(COLOR.rgb, uv, pc0, band_ants[2], 155, 180, blue0.rgb, blue1.rgb, 0.4, 0);
bip1(COLOR.rgb, uv, tr0, 13.0, blue1.rgb, 1.0);
bip1(COLOR.rgb, uv, tr1, 13.0, blue1.rgb, 1.0);
@@ -310,29 +341,31 @@ void fragment()
[resource]
shader = SubResource("1")
shader_parameter/blue0 = Color(0.378, 0.4272, 0.45, 1)
shader_parameter/blue1 = Color(0.336, 0.3808, 0.4, 1)
shader_parameter/blue0 = Color(0.38, 0.47, 0.51, 1)
shader_parameter/blue1 = Color(0.39, 0.44, 0.5, 1)
shader_parameter/blue2 = Color(0.11, 0.21, 0.25, 1)
shader_parameter/blue3 = Color(0.35, 0.76, 0.83, 1)
shader_parameter/blue4 = Color(0.953, 0.969, 0.89, 1)
shader_parameter/red = Color(1, 0.38, 0.227, 1)
shader_parameter/line_width = 2.0
shader_parameter/sec_forward = 0.0
shader_parameter/sec_back = 90.0
shader_parameter/sec_left = 180.0
shader_parameter/sec_right = 270.0
shader_parameter/sec_forward = 180.0
shader_parameter/sec_back = 0.0
shader_parameter/sec_left = 90.0
shader_parameter/sec_right = 300.0
shader_parameter/d0 = 520.0
shader_parameter/d1 = 1110.0
shader_parameter/d2 = 1150.0
shader_parameter/d1 = 1120.0
shader_parameter/d2 = 1160.0
shader_parameter/d3 = 100.0
shader_parameter/d4 = 180.0
shader_parameter/d5 = 650.0
shader_parameter/d6 = 800.0
shader_parameter/d7 = 950.0
shader_parameter/pc0 = Vector2(600, 600)
shader_parameter/pc1 = Vector2(120, 1090)
shader_parameter/pc2 = Vector2(90, 1110)
shader_parameter/pc0 = Vector2(590, 600)
shader_parameter/pc1 = Vector2(110, 1070)
shader_parameter/pc2 = Vector2(100, 1060)
shader_parameter/ap_ant_w = 12.0
shader_parameter/tr0 = Vector2(300, 400)
shader_parameter/tr1 = Vector2(500, 1000)
shader_parameter/tr2 = Vector2(1020, 240)
shader_parameter/tr0 = Vector2(600, 1000)
shader_parameter/tr1 = Vector2(1000, 600)
shader_parameter/tr2 = Vector2(300, 400)
shader_parameter/sec_var = 0.0
shader_parameter/band_ants = PackedInt32Array(8, 8, 12)