Files
2025-08-15 09:41:50 -04:00

46 lines
1.0 KiB
GLSL

/*
"Speak" by @XorDev
Playing with music reactive shaders
<512 playlist:
https://www.shadertoy.com/playlist/N3SyzR
*/
void mainImage(out vec4 O, vec2 I)
{
//Animation time
float t=iTime,
//Raymarch depth
z,
//Step distance
d,
//Signed distance
s,
//Raymarch iterator
i;
//Clear fragColor and raymarch 60 steps
for(O*=i; i++<6e1;
//Coloring and brightness
O+=(cos(i*.1+t+vec4(6,1,2,0))+1.)/d)
{
//Sample point (from ray direction)
vec3 p = z*normalize(vec3(I+I,0)-iResolution.xyy),
//Rotation axis
a = normalize(cos(vec3(0,2,4)+t+.1*i));
//Move camera back 5 units
p.z+=9.,
//Rotated coordinates
a = a*dot(a,p)-cross(a,p);
//Turbulence loop
for(d=.6;d<9.;d+=d)
a-=cos(a*d+t-.1*i).zxy/d;
//Distance to hollow, distorted sphere
z+=d=.1*abs(s=length(a)-3.- sin(texture(iChannel0,vec2(1,s)*.1).r/.1));
}
//Tanh tonemap
O = tanh(O/1e3);
}