☰
✎ Hypnotic Rings
bearbeiten
Bereit
Vertex Shader
Kopieren
attribute vec2 a_position; void main() { gl_Position = vec4(a_position, 0.0, 1.0); }
Fragment Shader
Kopieren
precision mediump float; uniform float u_time; uniform vec2 u_resolution; uniform vec2 u_mouseNorm; uniform float u_audioLow; uniform float u_audioMid; uniform float u_audioHigh; void main() { vec2 uv = (gl_FragCoord.xy - 0.5 * u_resolution.xy) / u_resolution.y; float t = u_time; float r = length(uv); float a = atan(uv.y, uv.x); float rings = sin(r * 20.0 - t * 3.0 + a * 2.0); rings += sin(r * 15.0 + t * 2.0 - a * 3.0) * 0.5; rings += u_audioLow * sin(r * 30.0 - t * 5.0) * 0.3; rings = rings * 0.5 + 0.5; vec3 col = vec3(0.05); col += vec3(0.2, 0.0, 0.4) * smoothstep(0.4, 0.6, rings); col += vec3(0.0, 0.5, 0.6) * smoothstep(0.5, 0.7, rings) * (1.0 + u_audioMid); col += vec3(0.8, 0.3, 0.0) * smoothstep(0.6, 0.8, rings) * u_audioHigh; float center = exp(-r * 3.0); col += vec3(0.5, 0.2, 0.8) * center; float mouseDist = length(uv - (u_mouseNorm - 0.5) * vec2(u_resolution.x/u_resolution.y, 1.0)); col += vec3(1.0, 0.5, 0.2) * smoothstep(0.2, 0.0, mouseDist) * 0.4; gl_FragColor = vec4(col, 1.0); }
💾 Speichern
⬇ Export JSON
← Zurück
Live-Vorschau
FPS: --
↻ Neu laden
⏸ Pause