исправление
This commit is contained in:
59
Shaders/load.gdshader
Normal file
59
Shaders/load.gdshader
Normal file
@@ -0,0 +1,59 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform float frequency = 5.0;
|
||||
uniform float amplitude = 0.1; // Уменьшаем амплитуду для корректного отображения
|
||||
uniform float speed = 5.0;
|
||||
uniform float direction: hint_range(-1.0, 1.0) = -1.0;
|
||||
|
||||
uniform vec4 color1: source_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
uniform vec4 color2: source_color = vec4(0.235, 0.18, 0.235, 1.0);
|
||||
uniform vec4 color3: source_color = vec4(0.235, 0.18, 0.235, 0.5);
|
||||
uniform vec4 color4: source_color = vec4(0.0, 0.0, 0.0, 0.0);
|
||||
uniform float opacity: hint_range(0.0, 1.0) = 0.5;
|
||||
uniform float turn = 0.785; // 45 градусов в радианах (TAU / 8)
|
||||
|
||||
|
||||
vec2 rotate_uv(vec2 uv, vec2 pivot, float rotation) {
|
||||
float cosa = cos(rotation);
|
||||
float sina = sin(rotation);
|
||||
uv -= pivot;
|
||||
return vec2(
|
||||
cosa * uv.x - sina * uv.y,
|
||||
sina * uv.x + cosa * uv.y
|
||||
) + pivot;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 uv = FRAGCOORD.xy;
|
||||
|
||||
// Нормализуем UV-координаты в диапазоне [0, 1]
|
||||
uv = uv * 0.15 - 1.0; // Преобразуем в диапазон [-1, 1]
|
||||
|
||||
// Поворот UV-координат на 45 градусов
|
||||
float angle = radians(-60.0); // Преобразуем градусы в радианы
|
||||
vec2 origin = vec2(0.0, 0.0);
|
||||
uv = rotate_uv(uv, origin, angle);
|
||||
|
||||
// Преобразуем обратно в диапазон [0, 1]
|
||||
uv = uv * 0.05 + 0.05;
|
||||
|
||||
// Вычисляем синусоидальную волну
|
||||
float sine_wave = sin(uv.x * frequency + TIME * speed * direction) * amplitude;
|
||||
uv.y += sine_wave;
|
||||
|
||||
float t = sin(uv.x * frequency + TIME * speed * direction);
|
||||
|
||||
vec4 final_color;
|
||||
if (t < -0.5) {
|
||||
final_color = color1;
|
||||
} else if (t < 0.0) {
|
||||
final_color = color2;
|
||||
} else if (t < 0.5) {
|
||||
final_color = color3;
|
||||
} else {
|
||||
final_color = color4;
|
||||
}
|
||||
|
||||
final_color *= vec4(1.0, 1.0, 1.0, opacity);
|
||||
COLOR = final_color;
|
||||
}
|
||||
Reference in New Issue
Block a user