From fbbc93ab2cf80d298d18e887be72b047178e3de9 Mon Sep 17 00:00:00 2001 From: XTRA Date: Wed, 9 Oct 2024 18:36:01 +0300 Subject: [PATCH] Don't allow certain shaders twice --- assets/shaders/cromatic-abberation.gdshader | 6 +++--- assets/shaders/pixelsort.gdshader | 6 +++--- entities/kaleido_scope.tscn | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/assets/shaders/cromatic-abberation.gdshader b/assets/shaders/cromatic-abberation.gdshader index f1b7307..cba2a8b 100644 --- a/assets/shaders/cromatic-abberation.gdshader +++ b/assets/shaders/cromatic-abberation.gdshader @@ -30,12 +30,12 @@ void vertex() { void fragment() { vec2 chaos_v = vec2(chaos, -chaos) * SCREEN_PIXEL_SIZE; - + float dist = length((UV - vec2(0.5)) * 2.); float att = clamp(dist / radius, 0., 1.); - + chaos_v *= 1. - pow(att, attenuation); - + COLOR = vec4( texture(TEXTURE, SCREEN_UV + chaos_v * amount_r).r, texture(TEXTURE, SCREEN_UV + chaos_v * amount_g).g, diff --git a/assets/shaders/pixelsort.gdshader b/assets/shaders/pixelsort.gdshader index a8e4253..0795593 100644 --- a/assets/shaders/pixelsort.gdshader +++ b/assets/shaders/pixelsort.gdshader @@ -9,16 +9,16 @@ uniform float sort :hint_range(0.0, 2.6)= .5; void fragment(){ vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy; - + // Pseudo Pixel Sorting float sortThreshold = 1.0 - clamp(sort / 2.6, 0.0, 1.0); vec2 sortUv = vec2(uv.x, sortThreshold); - + // Curved melting transition vec2 transitionUV = uv; transitionUV.y += pow(sort, 2.0 + (sort * 2.0)) * uv.x * fract(sin(dot(vec2(transitionUV.x), vec2(12.9, 78.2)))* 437.5); COLOR = texture(TEXTURE, transitionUV); - + // Draw pixel sorting effect behind the melting transition if(transitionUV.y > 1.){ COLOR = texture(TEXTURE, sortUv); diff --git a/entities/kaleido_scope.tscn b/entities/kaleido_scope.tscn index 5c3635b..346dab0 100644 --- a/entities/kaleido_scope.tscn +++ b/entities/kaleido_scope.tscn @@ -35,9 +35,9 @@ func _ready() -> void: var shader_name: String = \"\".join(shader.get_meta(\"shader_name\")); - print(shader.get_meta(\"shader_name\")) match shader_name: \"pixelate\": + shaders.remove_at(shaders.find(shader, 0)); print(\"pixelate\") material.set_shader_parameter(\"x_pixel_size\", randi_range(1, 5)); material.set_shader_parameter(\"y_pixel_size\", randi_range(1, 5)); @@ -49,10 +49,12 @@ func _ready() -> void: material.set_shader_parameter(\"attenuation\", randf_range(2.0, 5.0)); \"kaleidoscope\": + shaders.remove_at(shaders.find(shader, 0)); print(\"kaleidoscope\") - material.set_shader_parameter(\"segments\", float(randi_range(5.0, 8.0))); + material.set_shader_parameter(\"segments\", float(randi_range(3.0, 5.0))); \"pixelsort\": + shaders.remove_at(shaders.find(shader, 0)); print(\"pixelsort\") material.set_shader_parameter(\"sort\", randf_range(0.1, 2.6)); @@ -286,6 +288,7 @@ stretch_mode = 6 [node name="AutoScale" parent="KaleidoViewport" instance=ExtResource("2_7v8f2")] [node name="TextMask" type="TextureRect" parent="."] +visible = false material = SubResource("ShaderMaterial_ahqjw") layout_mode = 1 anchors_preset = 15