Fixed wall shader

This commit is contained in:
2026-06-12 02:02:28 +03:00
parent e72e17f7ca
commit cbfbd9f4d8
11 changed files with 52 additions and 30 deletions
+1
View File
@@ -42,6 +42,7 @@ object = NodePath("..")
[node name="Camera2D" type="Camera2D" parent="." unique_id=45512317] [node name="Camera2D" type="Camera2D" parent="." unique_id=45512317]
process_callback = 0 process_callback = 0
position_smoothing_enabled = true position_smoothing_enabled = true
position_smoothing_speed = 25.0
drag_horizontal_enabled = true drag_horizontal_enabled = true
drag_vertical_enabled = true drag_vertical_enabled = true
drag_left_margin = 0.1 drag_left_margin = 0.1
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dggr8t4b30e3n"] [gd_resource type="ShaderMaterial" format=3 uid="uid://dggr8t4b30e3n"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_61jua"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_61jua"]
@@ -9,6 +9,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true shader_parameter/switch_colors = true
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0 shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0 shader_parameter/scale = 50.0
shader_parameter/use_world_pos = false
+4 -3
View File
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 0.50000002375 shader_parameter/speed = 1.0
shader_parameter/intensity = 0.50000002375 shader_parameter/intensity = 0.5
shader_parameter/scale = 20.0 shader_parameter/scale = 50.0
shader_parameter/use_world_pos = false
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://ci7xuso12af5"] [gd_resource type="ShaderMaterial" format=3 uid="uid://ci7xuso12af5"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_xngo8"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_xngo8"]
@@ -9,6 +9,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0 shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0 shader_parameter/scale = 50.0
shader_parameter/use_world_pos = false
+3 -2
View File
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0000000475 shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 5.0000002375 shader_parameter/scale = 5.0
shader_parameter/use_world_pos = false
+4 -3
View File
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0000000475 shader_parameter/speed = 1.0
shader_parameter/intensity = 0.50000002375 shader_parameter/intensity = 0.5
shader_parameter/scale = 5.0000002375 shader_parameter/scale = 5.0
shader_parameter/use_world_pos = false
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bhksbugqhxxa0"] [gd_resource type="ShaderMaterial" format=3 uid="uid://bhksbugqhxxa0"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_sq141"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_sq141"]
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true shader_parameter/switch_colors = true
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0 shader_parameter/speed = 0.5
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0 shader_parameter/scale = 0.1
shader_parameter/use_world_pos = true
+4 -3
View File
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 0.50000002375 shader_parameter/speed = 0.5
shader_parameter/intensity = 0.50000002375 shader_parameter/intensity = 0.5
shader_parameter/scale = 20.0 shader_parameter/scale = 0.1
shader_parameter/use_world_pos = true
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://d2o2o1w8kb51g"] [gd_resource type="ShaderMaterial" format=3 uid="uid://d2o2o1w8kb51g"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_1yg6n"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_1yg6n"]
@@ -8,6 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0 shader_parameter/speed = 0.5
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0 shader_parameter/scale = 0.1
shader_parameter/use_world_pos = false
+7 -6
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=3 uid="uid://b3kyqvuxmfn8f"] [gd_scene format=3 uid="uid://b3kyqvuxmfn8f"]
[ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_xghly"] [ext_resource type="Texture2D" uid="uid://ddm4gc2g3aj2i" path="res://images/level/objects.png" id="1_xghly"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_4nvxe"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_4nvxe"]
@@ -21,9 +21,10 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0000002375 shader_parameter/speed = 2.50000011875
shader_parameter/intensity = 0.50000002375 shader_parameter/intensity = 0.6000000285
shader_parameter/scale = 75.0000035625 shader_parameter/scale = 75.0000035625
shader_parameter/use_world_pos = false
[sub_resource type="AtlasTexture" id="AtlasTexture_6xx0h"] [sub_resource type="AtlasTexture" id="AtlasTexture_6xx0h"]
atlas = ExtResource("1_xghly") atlas = ExtResource("1_xghly")
@@ -47,13 +48,13 @@ animations = [{
"speed": 5.0 "speed": 5.0
}] }]
[node name="Fireplace" type="Node2D"] [node name="Fireplace" type="Node2D" unique_id=1851673640]
script = SubResource("GDScript_4nvxe") script = SubResource("GDScript_4nvxe")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1590498638]
texture = SubResource("AtlasTexture_2ho61") texture = SubResource("AtlasTexture_2ho61")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=628370504]
material = SubResource("ShaderMaterial_2ho61") material = SubResource("ShaderMaterial_2ho61")
position = Vector2(0, 8) position = Vector2(0, 8)
sprite_frames = SubResource("SpriteFrames_f0x6e") sprite_frames = SubResource("SpriteFrames_f0x6e")
+13 -1
View File
@@ -1,5 +1,7 @@
shader_type canvas_item; shader_type canvas_item;
varying vec2 world_pos;
uniform vec4 black_color : source_color = vec4(0.0, 0.0, 0.0, 1.0); uniform vec4 black_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
uniform vec4 white_color : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform vec4 white_color : source_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform bool switch_colors = false; uniform bool switch_colors = false;
@@ -7,6 +9,7 @@ uniform float threshold : hint_range(0.0, 1.0) = 0.5;
uniform float speed : hint_range(0.0, 10.0) = 0.5; uniform float speed : hint_range(0.0, 10.0) = 0.5;
uniform float intensity : hint_range(0.0, 1.0) = 1.0; uniform float intensity : hint_range(0.0, 1.0) = 1.0;
uniform float scale : hint_range(0.0, 100.0) = 20.0; uniform float scale : hint_range(0.0, 100.0) = 20.0;
uniform bool use_world_pos = false;
vec2 random(vec2 uv){ vec2 random(vec2 uv){
uv = vec2( dot(uv, vec2(127.1,311.7) ), uv = vec2( dot(uv, vec2(127.1,311.7) ),
@@ -26,9 +29,17 @@ float noise(vec2 uv) {
dot( random(uv_index + vec2(1.0,1.0) ), uv_fract - vec2(1.0,1.0) ), blur.x), blur.y) + 0.5; dot( random(uv_index + vec2(1.0,1.0) ), uv_fract - vec2(1.0,1.0) ), blur.x), blur.y) + 0.5;
} }
void vertex() {
if (use_world_pos) {
world_pos = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy;
}
}
void fragment() { void fragment() {
if (COLOR.a > 0.01) { if (COLOR.a > 0.01) {
vec2 noise_uv = UV * vec2(1.0, TEXTURE_PIXEL_SIZE.x / TEXTURE_PIXEL_SIZE.y); vec2 noise_uv = vec2(1.0, TEXTURE_PIXEL_SIZE.x / TEXTURE_PIXEL_SIZE.y);
noise_uv *= use_world_pos ? world_pos : UV;
float l = dot(COLOR.rgb, vec3(0.2126, 0.7152, 0.0722)); float l = dot(COLOR.rgb, vec3(0.2126, 0.7152, 0.0722));
bool is_black = l < threshold; bool is_black = l < threshold;
@@ -37,6 +48,7 @@ void fragment() {
} }
if (intensity < 1.0) { if (intensity < 1.0) {
vec2 coord = noise_uv * scale + TIME * speed; vec2 coord = noise_uv * scale + TIME * speed;
if (noise(coord) > intensity) { if (noise(coord) > intensity) {
is_black = !is_black; is_black = !is_black;
} }