From d57a59e9fe3f178f852cbbb8052e41c4de70aac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Fri, 22 Aug 2025 10:19:55 +0200 Subject: [PATCH] game: make some changes to water shader --- assets/shaders/water2.gdshader | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/assets/shaders/water2.gdshader b/assets/shaders/water2.gdshader index 387ef51..938538e 100644 --- a/assets/shaders/water2.gdshader +++ b/assets/shaders/water2.gdshader @@ -3,19 +3,28 @@ uniform vec4 water_color : source_color = vec4(0.0, 0.0, 1.0, 1.0); uniform sampler2D noise_tex; // noise texture uniform vec2 noise_speed = vec2(0.05, 0.01); uniform float noise_strength = 0.2; // how much to lighten/darken +uniform float pixel_size = 0.005; void fragment() { vec2 uv = UV; vec4 base_tex = texture(TEXTURE, uv); float is_water = step(0.8, 1.0 - distance(base_tex.rgb, water_color.rgb)); + vec2 snapped_uv = floor(SCREEN_UV / pixel_size) * pixel_size; // Scroll UVs for noise animation - vec2 noise_uv = SCREEN_UV + noise_speed * TIME; + //vec2 noise_uv = SCREEN_UV + noise_speed * TIME; + vec2 noise_uv = snapped_uv + noise_speed * TIME; vec4 noise_sample = texture(noise_tex, fract(noise_uv)); + float n = noise_sample.r; + n = pow(n, 3.0) * 4.0; + n = clamp(n,0.0, 1.0); + + vec4 noisy_color = water_color.rgba; + noisy_color += vec4(0.1* (noise_sample.r - 0.5), 0.05 * (noise_sample.r - 0.5), 0.0, 1.0); // Use noise (0..1) to brighten/darken the water color - float brightness = (noise_sample.r - 0.5) * 2.0 * noise_strength; - vec4 animated_water = water_color + vec4(vec3(brightness), 0.0); + float brightness = (n - 0.5) * 4.0 * noise_strength; + vec4 animated_water = noisy_color + vec4(vec3(brightness), 0.0); COLOR = mix(base_tex, animated_water, is_water);