vec3 p;
for(float i,z,f;i++<3e1;z+=f=.003+abs(length(p.xy)-5.+dot(cos(p),sin(p).yzx))/8.,o+=(1.+sin(i*.3+z+t+vec4(6,1,2,0)))/f)
for(p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,f=1.;f++<6.;p+=sin(round(p.yxz*PI2)/PI*f)/f);
o=tanh(o/1e3);
Distances are reconstructed via trilinear interpolation of cached values on a grid.
This is the equivalent of what was shown in my earlier 2D animations (see below!)
Distances are reconstructed via trilinear interpolation of cached values on a grid.
This is the equivalent of what was shown in my earlier 2D animations (see below!)
for(float i,z,d;z+i++<7e1;o+=vec4(z,1,9,1)/d)
{vec3 p=abs(z*normalize(FC.rgb*2.-r.xyy));p.z+=t*5.;p+=sin(p+p);for(d=0.;d++<9.;p+=.4*cos(round(.2*d*p)+.2*t).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));}
o=tanh(o/7e3);
for(float i,z,d;z+i++<7e1;o+=vec4(z,1,9,1)/d)
{vec3 p=abs(z*normalize(FC.rgb*2.-r.xyy));p.z+=t*5.;p+=sin(p+p);for(d=0.;d++<9.;p+=.4*cos(round(.2*d*p)+.2*t).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));}
o=tanh(o/7e3);
for(float i,z,d;z+i++<8e1;o+=vec4(z,4,1,1)/d)
{vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=t/.1;p-=sin(p+p);for(d=0.;d++<9.;p+=.7*cos(round(.2*d*p)+t*.5).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));}
o=tanh(o/5e3);
for(float i,z,d;z+i++<8e1;o+=vec4(z,4,1,1)/d)
{vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=t/.1;p-=sin(p+p);for(d=0.;d++<9.;p+=.7*cos(round(.2*d*p)+t*.5).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));}
o=tanh(o/5e3);
for(float i,z,d,h;i++<8e1;o+=vec4(9,5,h+t,1)/d)
{vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;p.z+=9.;a=mix(dot(a+=.5,p)*a,p,sin(h=dot(p,p/p)-t))+cos(h)*cross(a,p);
for(d=0.;d++<9.;a+=.3*sin(a*d).zxy);z+=d=length(a.xz)/15.;}
o=tanh(o/1e4);
for(float i,z,d,h;i++<8e1;o+=vec4(9,5,h+t,1)/d)
{vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;p.z+=9.;a=mix(dot(a+=.5,p)*a,p,sin(h=dot(p,p/p)-t))+cos(h)*cross(a,p);
for(d=0.;d++<9.;a+=.3*sin(a*d).zxy);z+=d=length(a.xz)/15.;}
o=tanh(o/1e4);
vec2 p=(FC.xy*2.-r)/r.y*2e1;
o=tanh(vec4(1,1,2,1)/length(p*.2+tan(sin(p+=t).yx+p)));
vec2 p=(FC.xy*2.-r)/r.y*2e1;
o=tanh(vec4(1,1,2,1)/length(p*.2+tan(sin(p+=t).yx+p)));
for(float i,z,d,h;i++<4e1;o+=vec4(h,1,4,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;a.y++;p.z+=6.;a=mix(dot(a,p)*a,p,sin(h=t-length(p*p.yzx)))+cos(h)*cross(a,p);for(d=0.;d++<9.;a-=cos(round(a*d)+t).zxy/d);z+=d=.1*length(a.xz);h=p.y+4.;}o=tanh(o/2e3);
for(float i,z,d,h;i++<4e1;o+=vec4(h,1,4,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;a.y++;p.z+=6.;a=mix(dot(a,p)*a,p,sin(h=t-length(p*p.yzx)))+cos(h)*cross(a,p);for(d=0.;d++<9.;a-=cos(round(a*d)+t).zxy/d);z+=d=.1*length(a.xz);h=p.y+4.;}o=tanh(o/2e3);
Did you know 50% of your game is already done? You shouldn't be spending time in coding your own complex systems or getting headaches with perplexing shaders. So we present…
LIST OF FREE GAMEMAKER RESOURCES, SHADERS AND SCRIPTS
RT to save a live!
#indiegame #gamedev
Did you know 50% of your game is already done? You shouldn't be spending time in coding your own complex systems or getting headaches with perplexing shaders. So we present…
LIST OF FREE GAMEMAKER RESOURCES, SHADERS AND SCRIPTS
RT to save a live!
#indiegame #gamedev
They have a page dedicated to tutorials. If this is your kind of thing or it can match with your game’s aesthetic, don’t miss out.
mini.gmshaders.com
They have a page dedicated to tutorials. If this is your kind of thing or it can match with your game’s aesthetic, don’t miss out.
mini.gmshaders.com
vec3 p,v=vec3(1,2,1);for(float d,i,z;i++<4e1;o+=(cos(i/4.+vec4(2,1,6,0))+1.)/d/d)p=z*normalize(FC.rgb*2.-r.xyy),d=abs(z-3.+cos(t)/.7)/2e1,z+=d=.6*max(d,length(abs(fract(p/v)-.5)*v-.1)-d);o=tanh(o/3e4);
vec3 p,v=vec3(1,2,1);for(float d,i,z;i++<4e1;o+=(cos(i/4.+vec4(2,1,6,0))+1.)/d/d)p=z*normalize(FC.rgb*2.-r.xyy),d=abs(z-3.+cos(t)/.7)/2e1,z+=d=.6*max(d,length(abs(fract(p/v)-.5)*v-.1)-d);o=tanh(o/3e4);
vec3 p;for(float d,i,z;i++<5e1;o+=(cos(z+vec4(2,1,0,0))+1.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z+=t,d=abs(.04*z-.4),z+=d=.4*max(d,length(min(p=cos(p+z),p.yzx))-d);o=tanh(o*o/6e3);
vec3 p;for(float d,i,z;i++<5e1;o+=(cos(z+vec4(2,1,0,0))+1.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z+=t,d=abs(.04*z-.4),z+=d=.4*max(d,length(min(p=cos(p+z),p.yzx))-d);o=tanh(o*o/6e3);
vec3 p;for(float d,i,z;i++<5e1;o+=(cos(i/9.+vec4(2,1,0,0))+1.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.5*length(vec2(3.-abs(p.y)+dot(cos(p+.3*t),sin(.3*t-.6*p.yzx)),cos(p/.3-p.z)*.3))-d);
o=tanh(o/8e1);
vec3 p;for(float d,i,z;i++<5e1;o+=(cos(i/9.+vec4(2,1,0,0))+1.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.5*length(vec2(3.-abs(p.y)+dot(cos(p+.3*t),sin(.3*t-.6*p.yzx)),cos(p/.3-p.z)*.3))-d);
o=tanh(o/8e1);
vec2 p=.5*(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i/4.)-t*.5)*vec4(.1/abs(fract(p)-.5).yxx/i,1)*(1.-o.a))p*=mat2(2,2,-2,2);o=tanh(o*o+dot(o,o)/1e2);
vec2 p=.5*(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i/4.)-t*.5)*vec4(.1/abs(fract(p)-.5).yxx/i,1)*(1.-o.a))p*=mat2(2,2,-2,2);o=tanh(o*o+dot(o,o)/1e2);
vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i)-t*.5)*vec4(.04/abs(fract(p)-.5).xxy,1)*(1.-o.a))p+=p;o=tanh(o*o+dot(o,o)/1e2);
vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i)-t*.5)*vec4(.04/abs(fract(p)-.5).xxy,1)*(1.-o.a))p+=p;o=tanh(o*o+dot(o,o)/1e2);
vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(.03/abs(fract(p)-.5).xyx,fract(t*.2+length(round(p)+i)/i))*(1.-o.a))p+=vec2(p.y,-p);o=tanh(o*o+dot(o,o)/1e2);
vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(.03/abs(fract(p)-.5).xyx,fract(t*.2+length(round(p)+i)/i))*(1.-o.a))p+=vec2(p.y,-p);o=tanh(o*o+dot(o,o)/1e2);
vec2 p=(round(FC.xy)-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(fwidth(v=ceil(p)).xyy,fract(length(v)/i-t*.2))*(1.-o.a))p+=p;
vec2 p=(round(FC.xy)-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(fwidth(v=ceil(p)).xyy,fract(length(v)/i-t*.2))*(1.-o.a))p+=p;
vec3 p;
for(float d,i,z;i++<1e2;o+=(cos(z+vec4(0,1,2,0))+1.5)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.6*length(max(p=sin(p)*sin(p.yzx),p.yzx)-.7)-d);
o=tanh(o/1e2);
vec3 p;
for(float d,i,z;i++<1e2;o+=(cos(z+vec4(0,1,2,0))+1.5)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.6*length(max(p=sin(p)*sin(p.yzx),p.yzx)-.7)-d);
o=tanh(o/1e2);
vec3 p;
for(float d,i,z;i++<1e2;o+=(cos(z*.3+vec4(0,1,2,0))+2.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t-z*.6,d=abs(.03*z-.3),z+=d=max(d,length(max(p=cos(p),p.yzx))-d);
o=tanh(o*o/9e2);
vec3 p;
for(float d,i,z;i++<1e2;o+=(cos(z*.3+vec4(0,1,2,0))+2.)/d/z)
p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t-z*.6,d=abs(.03*z-.3),z+=d=max(d,length(max(p=cos(p),p.yzx))-d);
o=tanh(o*o/9e2);
vec3 p,v;for(float i,z,d;i++<5e1;o+=vec4(3,z,6,1)/d/z)
p=z*normalize(2.*FC.rgb-r.xyy),p.z+=9.,p=dot(v=normalize(cos((t+i)/2.+vec3(6,1,4))),p)*v+cross(v,p),z+=d=.2*length(p.xy/vec2(1,9));
o=tanh(o/2e2);
vec3 p,v;for(float i,z,d;i++<5e1;o+=vec4(3,z,6,1)/d/z)
p=z*normalize(2.*FC.rgb-r.xyy),p.z+=9.,p=dot(v=normalize(cos((t+i)/2.+vec3(6,1,4))),p)*v+cross(v,p),z+=d=.2*length(p.xy/vec2(1,9));
o=tanh(o/2e2);
How to rotate in 3D with arbitrary axes. I tried to make this as accessible as I could
mini.gmshaders.com/p/3d-rotation
How to rotate in 3D with arbitrary axes. I tried to make this as accessible as I could
mini.gmshaders.com/p/3d-rotation
float value1(vec2 x)
{
vec2 i = floor(x);
vec2 s = smoothstep(i, i+1.0, x);
return mix(mix(rand(i), rand(i + vec2(1,0)), s.x),
mix(rand(i+vec2(0,1)), rand(i + 1.0), s.x), s.y);
}
float value1(vec2 x)
{
vec2 i = floor(x);
vec2 s = smoothstep(i, i+1.0, x);
return mix(mix(rand(i), rand(i + vec2(1,0)), s.x),
mix(rand(i+vec2(0,1)), rand(i + 1.0), s.x), s.y);
}