Ripple shader
I converted/modified this shader from this ShaderToy ripple shader: https://www.shadertoy.com/view/ldBXDD
Just attach the shader to a ColorRect, and play with the shader parameters to get stronger or weaker ripple effects. Everything behind the ColorRect will be affected by the shader.
Shader code
// Converted/modified from ShaderToy: https://www.shadertoy.com/view/ldBXDD
// Attach this shader to a ColorRect
shader_type canvas_item;
uniform float wave_count : hint_range(1.0, 20.0, 1.0) = 20.0;
uniform float speed : hint_range(0.0, 10.0, 0.1) = 3.0;
uniform float height : hint_range(0.0, 0.1, 0.001) = 0.003;
void fragment() {
vec2 cPos = -1.0 + 2.0 * UV / (1.0 / TEXTURE_PIXEL_SIZE);
float cLength = length(cPos);
vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy + (cPos/cLength) * cos(cLength * wave_count - TIME * speed) * height;
vec3 col = texture(SCREEN_TEXTURE,uv).xyz;
COLOR = vec4(col,1.0);
}
Thank you, exactly what I needed. I appreciate the instructions in the comments at the top of the shader.