We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Untitled Shader
Register
Log in
fork
#ifdef GL_ES precision mediump float; #endif #define PI 3.1415926538 uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; float scale(float v, vec2 scale_in, vec2 scale_out) { return scale_out.x + ( scale_out.y - scale_out.x ) * ( ( v - scale_in.x ) / (scale_in.y - scale_in.x) ); } float circle(vec2 uv, float r, float f, float a, float k) { // Compute angle and distance from center float angle = atan(uv.y, uv.x); float radius = length(uv); // Time-dependent base radius float baseRadius = scale(sin(PI), vec2(-1.,1.), vec2(0.1, r)); // Add sinusoidal wave to the circle contour float waveFreq = f; float waveAmp = a; float wave = sin(angle * waveFreq + u_time * k) * waveAmp; // Final radius with wave applied float finalRadius = baseRadius + wave; // Smooth edge for anti-aliasing (optional) float edgeThickness = 0.005; return step(finalRadius - edgeThickness, radius) - step(finalRadius, radius) ; } void main() { // Normalize and center UV coordinates vec2 uv = (gl_FragCoord.xy - u_resolution.xy * 0.5) / u_resolution.y; float alpha = circle(uv, 0.4, 5.0, 0.02, 3.0) + circle(uv, 0.4, 4.0, 0.02, -1.0) ; gl_FragColor = vec4(vec3(alpha), 1.0); }