From b431409cf6831cce8c271a032ce4334e887030b7 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 4 Dec 2023 16:16:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B5.=20=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/canvas.tscn | 2 +- shaders/shader_edu.tres | 105 ---------------------------------------- 2 files changed, 1 insertion(+), 106 deletions(-) delete mode 100644 shaders/shader_edu.tres diff --git a/scenes/canvas.tscn b/scenes/canvas.tscn index ea06dbd..812b39a 100644 --- a/scenes/canvas.tscn +++ b/scenes/canvas.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://b5kjdyxuwsot5"] -[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://shaders/shader_edu.tres" id="1_itkeo"] +[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://shaders/antenas.tres" id="1_itkeo"] [ext_resource type="Script" path="res://scenes/canvas.gd" id="2_clpjo"] [ext_resource type="PackedScene" uid="uid://c73ahpv8uiuc7" path="res://scenes/sector.tscn" id="3_kddns"] [ext_resource type="Shader" path="res://shaders/sector.gdshader" id="4_q0nxn"] diff --git a/shaders/shader_edu.tres b/shaders/shader_edu.tres deleted file mode 100644 index c31a209..0000000 --- a/shaders/shader_edu.tres +++ /dev/null @@ -1,105 +0,0 @@ -[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://s6xe8igevnv2"] - -[sub_resource type="Shader" id="1"] -code = "shader_type canvas_item; - -#include \"tools.gdshaderinc\" - -uniform vec2 pc0 = vec2(560, 560); /* Центр сетки антенн */ -uniform float rotation: hint_range(0.0, 360.0) = 0.0; /* */ -uniform vec4 color0: source_color = vec4(0.38, 0.47, 0.51, 0.4); -uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4); -uniform float radius_inner = 200.0; /* Радиус внутренний. Должно быть равно ant_band_r0_0 */ -uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */ -uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */ - -const int ant_band_count_0 = 2; -const int ant_band_count_1 = 2; -const int ant_band_count_2 = 2; -const int ant_band_count_3 = 2; -const int ant_band_count_4 = 2; -const int ant_band_count_5 = 2; -const int ant_band_count_6 = 2; - -const float ant_band_r0_0[] = {200.0, 480.0}; -const float ant_band_r0_1[] = {250.0, 490.0}; -const float ant_band_r0_2[] = {300.0, 500.0}; -const float ant_band_r0_3[] = {350.0, 510.0}; -const float ant_band_r0_4[] = {400.0, 520.0}; -const float ant_band_r0_5[] = {450.0, 530.0}; -const float ant_band_r0_6[] = {500.0, 540.0}; - -const float ant_band_r1_0[] = {250.0, 490.0}; -const float ant_band_r1_1[] = {300.0, 500.0}; -const float ant_band_r1_2[] = {350.0, 510.0}; -const float ant_band_r1_3[] = {400.0, 520.0}; -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}; - - -const float d4 = 90.0; -const float ds = 1.0; - - -void sector(inout vec4 c, vec2 uv, vec2 center, float a, float da, float r0, float r1, vec4 color) -{ - 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_px(a0 * sf, theta, ds) - smooth_px(a1 * sf, theta, ds); - float vr = smooth_px(r0, l, ds) - smooth_px(r1, l, ds); - float rgb = sqrt(va * vr); - c.rgb += color.rgb * rgb * color.a; - c.a += rgb * color.a; -} - - -void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, vec4 c0, vec4 c1) -{ - float da = 180.0f / float(cnt); - for (int i = -cnt; i <= cnt; i ++) - { - float v = float(i & 1); - vec4 col = v * c0 + (1.0f - v) * c1; - sector(c, uv, p0, float(i) * da, da, r0, r1, col); - } -} - - -void vertex() -{ - rotate_vec2(VERTEX, radians(rotation), pc0); -} - - -void fragment() -{ - ivec2 isz = textureSize(TEXTURE, 0); - vec2 uv = UV * vec2(float(isz.x), float(isz.y)); // координаты текущей точки в пикселях - COLOR = vec4(0, 0, 0, 0.0); //texture(TEXTURE, UV); // Цвет текущей точки - - // Сетка антенн - antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0[mode], ant_band_r1_0[mode], color1, color0); - antenas(COLOR, uv, pc0, ant_band_count_1, ant_band_r0_1[mode], ant_band_r1_1[mode], color0, color1); - antenas(COLOR, uv, pc0, ant_band_count_2, ant_band_r0_2[mode], ant_band_r1_2[mode], color1, color0); - antenas(COLOR, uv, pc0, ant_band_count_3, ant_band_r0_3[mode], ant_band_r1_3[mode], color0, color1); - antenas(COLOR, uv, pc0, ant_band_count_4, ant_band_r0_4[mode], ant_band_r1_4[mode], color1, color0); - antenas(COLOR, uv, pc0, ant_band_count_5, ant_band_r0_5[mode], ant_band_r1_5[mode], color0, color1); - antenas(COLOR, uv, pc0, ant_band_count_6, ant_band_r0_6[mode], ant_band_r1_6[mode], color1, color0); -} -" - -[resource] -shader = SubResource("1") -shader_parameter/pc0 = Vector2(560, 560) -shader_parameter/rotation = 0.0 -shader_parameter/color0 = Color(0.380392, 0.470588, 0.509804, 0.537255) -shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255) -shader_parameter/radius_inner = 200.0 -shader_parameter/radius_outter = 550.0 -shader_parameter/mode = 0