Xor's banner
Xor's profile picture

Xor

@XorDev40,713 subscribers

Shader Artist. Building https://t.co/kaSRjYH3hX

Shorts

SHOPIFY SPHERE SHADER BREAKDOWN Here is how we rendered 8k 60fps video live on the sphere:

SHOPIFY SPHERE SHADER BREAKDOWN Here is how we rendered 8k 60fps video live on the sphere:

185,214 Aufrufe

for(float i,z,d,f;i++<1e2;o+=vec4(4,6,8.+z,0)/f-min(dFdx(z)*r.y+z,0.)/exp(d*d/.1)){vec3 p=z*(FC.rgb*2.-r.xyy)/r.y,c=p;p.z+=8.;c.z*=3.;for(f=1.;f++<9.;c+=sin(c.yzx*f+z+t*.5)/f);z+=min(f=.1+abs(.2*c.y+abs(p.y+.8)),d=max(length(p)-3.,.9-length(p-vec3(-1,1,3))))/7.;}o=tanh(o/2e3);

for(float i,z,d,f;i++<1e2;o+=vec4(4,6,8.+z,0)/f-min(dFdx(z)*r.y+z,0.)/exp(d*d/.1)){vec3 p=z*(FC.rgb*2.-r.xyy)/r.y,c=p;p.z+=8.;c.z*=3.;for(f=1.;f++<9.;c+=sin(c.yzx*f+z+t*.5)/f);z+=min(f=.1+abs(.2*c.y+abs(p.y+.8)),d=max(length(p)-3.,.9-length(p-vec3(-1,1,3))))/7.;}o=tanh(o/2e3);

166,930 Aufrufe

"Dust" Here's an infinite, mathematically generated space station with volumetric shadows in just 439 characters of code!

"Dust" Here's an infinite, mathematically generated space station with volumetric shadows in just 439 characters of code!

179,491 Aufrufe

Event 2 vec2 p=(FC.xy*2.-r)/r.y/.3,v;for(float i,l,f;i++<9.;o+=.1/abs(l=dot(p,p)-5.-2./v.y)*(cos(i/3.+.1/l+vec4(1,2,3,4))+1.))for(v=p,f=0.;f++<9.;v+=sin(ceil(v.yx*f+i*.3)+r-t/2.)/f);o=max(tanh(o+(o=texture(b,(FC.xy+r.y*.04*sin(FC.xy+FC.yx/.6))/r))*o),.0);

Event 2 vec2 p=(FC.xy*2.-r)/r.y/.3,v;for(float i,l,f;i++<9.;o+=.1/abs(l=dot(p,p)-5.-2./v.y)*(cos(i/3.+.1/l+vec4(1,2,3,4))+1.))for(v=p,f=0.;f++<9.;v+=sin(ceil(v.yx*f+i*.3)+r-t/2.)/f);o=max(tanh(o+(o=texture(b,(FC.xy+r.y*.04*sin(FC.xy+FC.yx/.6))/r))*o),.0);

41,931 Aufrufe

Aliasing vs anti-aliasing. On the left, we simply test if a pixel center (in green) is inside the circle (red). On the right, we check how close the pixel is to the circle edge and blend one pixel width.

Aliasing vs anti-aliasing. On the left, we simply test if a pixel center (in green) is inside the circle (red). On the right, we check how close the pixel is to the circle edge and blend one pixel width.

92,352 Aufrufe

View from my room! Should I write a tech breakdown of the effects?

View from my room! Should I write a tech breakdown of the effects?

47,562 Aufrufe

void mainImage(out vec4 o, vec2 f){float c=cos(iTime),s=sin(iTime),a=iResolution.y,z=-a,i,d;f=2.*f/a-1.;vec3 p;for(o*=i;i++<1e2;o+=(sin(p.x/.2+z/.1+vec4(0,1,2,3))+1.)/d)p=vec3(f.x*c-z*s,f.y,z*c+f*s),a=length(p.xy)-.6,z+=d=.01+.3*abs(sqrt(a*a+p*p).z-.3);o=tanh(o*o/7e6);}

void mainImage(out vec4 o, vec2 f){float c=cos(iTime),s=sin(iTime),a=iResolution.y,z=-a,i,d;f=2.*f/a-1.;vec3 p;for(o*=i;i++<1e2;o+=(sin(p.x/.2+z/.1+vec4(0,1,2,3))+1.)/d)p=vec3(f.x*c-z*s,f.y,z*c+f*s),a=length(p.xy)-.6,z+=d=.01+.3*abs(sqrt(a*a+p*p).z-.3);o=tanh(o*o/7e6);}

65,358 Aufrufe

"Caustics" in 146 chars of #GLSL vec2 p=FC.xy/r.y*2e1+t;for(float i;i++<8.;)p+=sin(p+t/.2+i)*.4,p*=mat2(6,-8,8,6)/9.;o=vec4(tanh(length(fwidth(sin(p*.3)/.1))),texture(b,FC.xy/r));

"Caustics" in 146 chars of #GLSL vec2 p=FC.xy/r.y*2e1+t;for(float i;i++<8.;)p+=sin(p+t/.2+i)*.4,p*=mat2(6,-8,8,6)/9.;o=vec4(tanh(length(fwidth(sin(p*.3)/.1))),texture(b,FC.xy/r));

99,493 Aufrufe

"Runner" vec3 q,p;for(float z,d,i,l;l++<3e1;z+=d,o+=.1*(vec4(4,2,1,0)-tanh(p.y+4.))*d/(1.+z)){p=z*normalize(FC.rgb*2.-r.xyy)-2.;p.xz-=t+3.;for(q=p,d=p.y,i=4e1;i>.01;i*=.2)d=max(d,min(min(q=i*.9-abs(mod(q,i+i)-i),q.y).x,q.z)),q.xz*=rotate2D(9.);}o=tanh(o*o);

"Runner" vec3 q,p;for(float z,d,i,l;l++<3e1;z+=d,o+=.1*(vec4(4,2,1,0)-tanh(p.y+4.))*d/(1.+z)){p=z*normalize(FC.rgb*2.-r.xyy)-2.;p.xz-=t+3.;for(q=p,d=p.y,i=4e1;i>.01;i*=.2)d=max(d,min(min(q=i*.9-abs(mod(q,i+i)-i),q.y).x,q.z)),q.xz*=rotate2D(9.);}o=tanh(o*o);

52,134 Aufrufe

"Waveform" for(float i,d,z,f;i++<9e1;o+=(cos(z*.5+t+vec4(0,2,4,3))+1.3)/d/z){vec3 p=z*normalize(FC.rgb*2.-r.xyy)+1.;f=max(-p.y,0.);p.y+=f+f;for(d=1.;d<3e1;d+=d)p.y+=cos(p*d+2.*t*cos(d)+z).x/d;z+=d=(.1*f+abs(p.y-1.)/(++f*f)+max(d=p.z+3.,-d*.1))/8.;}o=tanh(o/9e2);

"Waveform" for(float i,d,z,f;i++<9e1;o+=(cos(z*.5+t+vec4(0,2,4,3))+1.3)/d/z){vec3 p=z*normalize(FC.rgb*2.-r.xyy)+1.;f=max(-p.y,0.);p.y+=f+f;for(d=1.;d<3e1;d+=d)p.y+=cos(p*d+2.*t*cos(d)+z).x/d;z+=d=(.1*f+abs(p.y-1.)/(++f*f)+max(d=p.z+3.,-d*.1))/8.;}o=tanh(o/9e2);

46,883 Aufrufe

"Storm" in 238 bytes: for(float i,z,d,s;i++<1e2;o+=vec4(.2/d,9,2,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p;p.z+=7.;s=length(p); for(d=0.;d++<9.;a+=sin(a*d-t).yzx/d); z+=d=length(vec4(sin(s+s-t/.1+a*sin(a.yzx/3.+t))+.9,min(s-=4.,-s/.1)*.4))*.1;} o=tanh(o/8e3);

"Storm" in 238 bytes: for(float i,z,d,s;i++<1e2;o+=vec4(.2/d,9,2,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p;p.z+=7.;s=length(p); for(d=0.;d++<9.;a+=sin(a*d-t).yzx/d); z+=d=length(vec4(sin(s+s-t/.1+a*sin(a.yzx/3.+t))+.9,min(s-=4.,-s/.1)*.4))*.1;} o=tanh(o/8e3);

29,174 Aufrufe

3D Camera uniforms for easily setup in any raymarching/raytracing shader

3D Camera uniforms for easily setup in any raymarching/raytracing shader

13,068 Aufrufe

"Siri" vec3 p,a;for(float i,z,d,s;z+i++<2e2;o+=max(cos(p.x*.4+vec4(0,2,4,0)),5./s/s)/d/d)p=z*normalize(FC.rgb*2.-r.xyy),p.z+=9.,s=length(p=dot(a=normalize(cos(vec3(0,2,4)-t*.5+s*.3)),p)*a-cross(a,p)),z+=d=min(abs(dot(p,sin(p).yzx))*.2+max(d=s-5.,.1),abs(--d)+.2)*.2;o=tanh(o/3e4);

"Siri" vec3 p,a;for(float i,z,d,s;z+i++<2e2;o+=max(cos(p.x*.4+vec4(0,2,4,0)),5./s/s)/d/d)p=z*normalize(FC.rgb*2.-r.xyy),p.z+=9.,s=length(p=dot(a=normalize(cos(vec3(0,2,4)-t*.5+s*.3)),p)*a-cross(a,p)),z+=d=min(abs(dot(p,sin(p).yzx))*.2+max(d=s-5.,.1),abs(--d)+.2)*.2;o=tanh(o/3e4);

20,194 Aufrufe

Orchard vec3 p,v=normalize(FC.rgb*2.-r.xyx),c=v/v.y;c.z+=.5*t;for(float z,i,b,g,m;i++<5e1;z+=.8*max(b=length((p.y-m)/1e2/(abs(sin(c.xz/.1))-.05/v.y)),min(4.-m,g=length(sin(p.xz)+1.-.1*(1.+sin(p.y-p.zx*.5))*m))-b),o.rgb+=(.7-v)/(g+b))p=z*v+1.,p.z-=t,m=abs(++p.y);o=tanh(o/5e2);

Orchard vec3 p,v=normalize(FC.rgb*2.-r.xyx),c=v/v.y;c.z+=.5*t;for(float z,i,b,g,m;i++<5e1;z+=.8*max(b=length((p.y-m)/1e2/(abs(sin(c.xz/.1))-.05/v.y)),min(4.-m,g=length(sin(p.xz)+1.-.1*(1.+sin(p.y-p.zx*.5))*m))-b),o.rgb+=(.7-v)/(g+b))p=z*v+1.,p.z-=t,m=abs(++p.y);o=tanh(o/5e2);

12,216 Aufrufe

"HOME" vec3 p; for(float i,z,d,l;i++<6e1;o+=(vec4(5,9,2.+d*5e1,0)/l)/z) p=z*normalize(FC.rgb*2.-r.xyy)-cos(.5*t), p.z+=5.,p.xz*=mat2(cos(t+p.y*.4-vec4(0,33,11,0))), d=length(p),z+=d=min(l=length(cos(p/d/.1)+p.y+d),d-.8-exp(-p*p/.1).y)/9.; o=tanh(o*o/7e3);

"HOME" vec3 p; for(float i,z,d,l;i++<6e1;o+=(vec4(5,9,2.+d*5e1,0)/l)/z) p=z*normalize(FC.rgb*2.-r.xyy)-cos(.5*t), p.z+=5.,p.xz*=mat2(cos(t+p.y*.4-vec4(0,33,11,0))), d=length(p),z+=d=min(l=length(cos(p/d/.1)+p.y+d),d-.8-exp(-p*p/.1).y)/9.; o=tanh(o*o/7e3);

18,807 Aufrufe

"Voxel AO" in #GLSL #define M (dot(cos(v.zxy*.1),sin(v*F4))-v.y*.1) vec3 R=normalize(r.x*.51-FC.xyz),d=sign(R),p=vec3(cos(r+t)-2e1,t/.1),v=round(p),l=(v-p+.5*d)/R,i,A,P;for(;i.x<2e2&&M>.3;i++)A=step(P=l,min(l.yzx,l.zxy)),v+=d*A,l+=d/R*A;v=p+dot(P,A)*R;o.rgb=mix(M*A/.4,i/=2e2,i);

"Voxel AO" in #GLSL #define M (dot(cos(v.zxy*.1),sin(v*F4))-v.y*.1) vec3 R=normalize(r.x*.51-FC.xyz),d=sign(R),p=vec3(cos(r+t)-2e1,t/.1),v=round(p),l=(v-p+.5*d)/R,i,A,P;for(;i.x<2e2&&M>.3;i++)A=step(P=l,min(l.yzx,l.zxy)),v+=d*A,l+=d/R*A;v=p+dot(P,A)*R;o.rgb=mix(M*A/.4,i/=2e2,i);

29,259 Aufrufe

"Sauron" for(float i,z,d;i++<6e1;o+=(sin(z*.5+vec4(6,1,2,0))+1.1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=6.;p.xy*=mat2(cos(p.z*.4+vec4(0,33,11,0)));for(d=2.;d<15.;d/=.6)p+=cos((p.yzx+t*3.)*d)/d;z+=d=.02+abs(min(length(p.xy)-3.,4.-length(p)))/8.;}o=tanh(o/15e2);

"Sauron" for(float i,z,d;i++<6e1;o+=(sin(z*.5+vec4(6,1,2,0))+1.1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=6.;p.xy*=mat2(cos(p.z*.4+vec4(0,33,11,0)));for(d=2.;d<15.;d/=.6)p+=cos((p.yzx+t*3.)*d)/d;z+=d=.02+abs(min(length(p.xy)-3.,4.-length(p)))/8.;}o=tanh(o/15e2);

19,693 Aufrufe

Videos

XorDev's profile picture

I Eat Pixels

Xor

39,738 Aufrufe • vor 2 Monaten

XorDev's profile picture

"Rainbow Travel" by noztol

Xor

24,284 Aufrufe • vor 3 Monaten

XorDev's profile picture

Portfolio update. New shaders!

Xor

25,870 Aufrufe • vor 7 Monaten