31 lines
915 B
GLSL
31 lines
915 B
GLSL
const float PI = 3.14159265359;
|
|
const float SCALE = 150.0;
|
|
const float LENGTH = 7.5;
|
|
|
|
// https://www.shadertoy.com/view/Xt23Ry
|
|
float rand(float co) {
|
|
return fract(sin(co * 91.3458) * 47453.5453);
|
|
}
|
|
|
|
vec3 background(vec2 pos) {
|
|
// Radial gradient at (0.6, 0.4).
|
|
float r = length(pos - vec2(0.6, 0.4));
|
|
return vec3(r * 0.1);
|
|
}
|
|
|
|
// Inspired by https://www.shadertoy.com/view/Wtl3D7
|
|
vec3 trails(vec2 pos, vec3 bg_color, vec3 fg_color) {
|
|
float cdist = length(pos) * SCALE;
|
|
float rv = rand(ceil(cdist));
|
|
float rotation = u_time * rv * 0.005;
|
|
float nangle = atan(pos.y, pos.x) / PI;
|
|
float intensity = smoothstep(rv, rv - 1.5, fract(nangle + rotation + rv * 0.1) * LENGTH) * step(0.1, cdist / SCALE);
|
|
return mix(bg_color, fg_color * rv, intensity);
|
|
}
|
|
|
|
void main() {
|
|
vec3 bg_color = background(v_tex0);
|
|
vec3 fg_color = vec3(0.7, 0.7, 1.5);
|
|
o_col0 = vec4(trails(v_tex0, bg_color, fg_color), 1.0);
|
|
}
|