summaryrefslogtreecommitdiff
path: root/workspaces/main/shaders/ellipse.wgsl
blob: 0aaa4aeaf1bfa64caa939bbb67f82cac82d64a5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
#include "common_uniforms"
#include "render/fullscreen_vs"
#include "math/sdf_shapes"

@group(0) @binding(0) var<uniform> uniforms: CommonUniforms;

@fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> {
    let uv = (p.xy / uniforms.resolution - 0.5) * 2.0;
    let movement = vec2<f32>(sin(uniforms.time * 0.7), cos(uniforms.time * 0.5));
    let d = sdEllipse((uv * vec2<f32>(uniforms.aspect_ratio, 1.0)) - movement, vec2<f32>(0.5, 0.3) * (1.0 + uniforms.beat_phase * 0.2));
    return mix(vec4<f32>(0.2, 0.8, 0.4, 1.0), vec4<f32>(0.0), smoothstep(0.0, 0.01, d));
}