Concert

Shader code
shader_type canvas_item;

uniform float speed = 0.5;
uniform float intensity = 1.5;
uniform float radius = 0.5;

void fragment() {
    vec2 uv = UV;
    vec4 c = vec4(0.0);

    vec2 shift = vec2(sin(TIME * speed), cos(TIME * speed)) * 0.2;

    float d1 = distance(uv, vec2(0.0, 0.0) + shift);
    float d2 = distance(uv, vec2(1.0, 0.0) - shift);
    float d3 = distance(uv, vec2(0.0, 1.0) - shift.yx);
    float d4 = distance(uv, vec2(1.0, 1.0) + shift.yx);

    vec4 color1 = vec4(0.5 + 0.5*sin(TIME), 0.5 + 0.5*sin(TIME+1.0), 0.5 + 0.5*sin(TIME+2.0), 1.0);
    vec4 color2 = vec4(0.5 + 0.5*sin(TIME+3.0), 0.5 + 0.5*sin(TIME+4.0), 0.5 + 0.5*sin(TIME+5.0), 1.0);
    vec4 color3 = vec4(0.5 + 0.5*sin(TIME+6.0), 0.5 + 0.5*sin(TIME+7.0), 0.5 + 0.5*sin(TIME+8.0), 1.0);
    vec4 color4 = vec4(0.5 + 0.5*sin(TIME+9.0), 0.5 + 0.5*sin(TIME+10.0), 0.5 + 0.5*sin(TIME+11.0), 1.0);

    c += color1 * pow(max(0.0, 1.0 - d1/radius), intensity);
    c += color2 * pow(max(0.0, 1.0 - d2/radius), intensity);
    c += color3 * pow(max(0.0, 1.0 - d3/radius), intensity);
    c += color4 * pow(max(0.0, 1.0 - d4/radius), intensity);

    COLOR = c;
}
Live Preview
Tags
concert
The shader code and all code snippets in this post are under CC0 license and can be used freely without the author's permission. Images and videos, and assets depicted in those, do not fall under this license. For more info, see our License terms.
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments