#include "common_uniforms" #include "render/fullscreen_vs" #include "math/sdf_shapes" @group(0) @binding(0) var uniforms: CommonUniforms; @fragment fn fs_main(@builtin(position) p: vec4) -> @location(0) vec4 { let uv = (p.xy / uniforms.resolution - 0.5) * 2.0; let movement = vec2(sin(uniforms.time * 0.7), cos(uniforms.time * 0.5)); let d = sdEllipse((uv * vec2(uniforms.aspect_ratio, 1.0)) - movement, vec2(0.5, 0.3) * (1.0 + uniforms.beat_phase * 0.2)); return mix(vec4(0.2, 0.8, 0.4, 1.0), vec4(0.0), smoothstep(0.0, 0.01, d)); }