Shimmering light refractions as if viewed through a sunlit water surface.
GLSL fragment shader
The effect's own code. The uniforms and helpers above it — uTex, uFeedback, the depth proxy, the frame ring, depthAt(), timeAt() — are the same header every Ether-MOSH shader opens with, and are documented once on the registry rather than reprinted on all 143 pages.
void main(){ float t = uTime * uSpeed * 0.5; vec2 p = vUv * uScale; float n1 = noise(p + vec2(t * 0.9, t * 0.7)); float n2 = noise(p * 1.4 - vec2(t * 0.6, t * 0.85)); float n3 = noise(p * 0.65 + vec2(t * 0.45, -t * 0.6)); float caustic = n1 * n2 * n3; caustic = pow(clamp(caustic * 3.0, 0.0, 1.0), 1.2); vec2 refr = vec2(n1 - 0.5, n2 - 0.5) * uAmount * 0.05; vec4 c = texture2D(uTex, vUv + refr); vec3 lightColor = mix(vec3(0.25, 0.55, 1.0), vec3(1.0, 0.97, 0.92), caustic); gl_FragColor = vec4(c.rgb + lightColor * caustic * uAmount * 1.6, c.a); }