Xor's banner
Xor's profile picture

Xor

@XorDev39,831 subscribers

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

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:

183,858 görüntüleme

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 görüntüleme

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,412 görüntüleme

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,520 görüntüleme

"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 görüntüleme

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 görüntüleme

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);}

64,330 görüntüleme

for(float i,z,d,s;i++<1e2;){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.yz*=rotate2D(.2);for(d=5.;d<2e2;d+=d)p+=.5*sin(p.yzx*d-t*PI/10.)/d;z+=d=.5*(.01+.5*max(s=.3-abs(p.y),-s*.1));o+=(cos(s/.07+p.x+t*PI/10.-vec4(0,1,2,3)-3.)+1.5)*exp(s*9.)/d;}o=tanh(o*o/4e8);

for(float i,z,d,s;i++<1e2;){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.yz*=rotate2D(.2);for(d=5.;d<2e2;d+=d)p+=.5*sin(p.yzx*d-t*PI/10.)/d;z+=d=.5*(.01+.5*max(s=.3-abs(p.y),-s*.1));o+=(cos(s/.07+p.x+t*PI/10.-vec4(0,1,2,3)-3.)+1.5)*exp(s*9.)/d;}o=tanh(o*o/4e8);

68,134 görüntüleme

"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 görüntüleme

"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 görüntüleme

"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));

68,760 görüntüleme

"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,096 görüntüleme

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

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

13,053 görüntüleme

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 görüntüleme

"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);

19,997 görüntüleme

Observer vec2 p=(FC.xy*2.-r)/r.y/.2,v;for(float i,l,f;i++<1e1;o+=.03/max(l=length(v)-i,-l*3.)*(cos(t-i*.4+.1/l+vec4(0,1,2,3))+1.1))for(v=p,f=0.;f++<9.;v+=sin(ceil(v*f+i*.9)-t/2.)/f);o=max(tanh(o+(o=texture(b,(FC.xy+r.y*.05*sin(FC.xy+FC.yx/.6))/r))*o),.0);

Observer vec2 p=(FC.xy*2.-r)/r.y/.2,v;for(float i,l,f;i++<1e1;o+=.03/max(l=length(v)-i,-l*3.)*(cos(t-i*.4+.1/l+vec4(0,1,2,3))+1.1))for(v=p,f=0.;f++<9.;v+=sin(ceil(v*f+i*.9)-t/2.)/f);o=max(tanh(o+(o=texture(b,(FC.xy+r.y*.05*sin(FC.xy+FC.yx/.6))/r))*o),.0);

10,558 görüntüleme

"Heavenly 2" for(float i,z,d;i++<1e2;o+=(cos(z+t+vec4(0,1,2,3))+1.1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z-=t;for(d=1.;d<9.;d/=.7)p+=cos(p.yzx*d+z*.2-t*.1)/d;z+=d=.02+.1*abs(p.y+1.);}o=tanh(o/2e3);

"Heavenly 2" for(float i,z,d;i++<1e2;o+=(cos(z+t+vec4(0,1,2,3))+1.1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z-=t;for(d=1.;d<9.;d/=.7)p+=cos(p.yzx*d+z*.2-t*.1)/d;z+=d=.02+.1*abs(p.y+1.);}o=tanh(o/2e3);

23,107 görüntüleme

"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 görüntüleme

Cleanse vec2 p=(FC.xy*2.-r)/r.y/.3;for(float f;f++<1e2;p+=.02*sin(p.yx+.5*t))o+=(cos(f/27.+vec4(0,1,3,0))+1.1)/length(sin(p*sin(r+f)/.7));o=tanh(o*o/4e4);

Cleanse vec2 p=(FC.xy*2.-r)/r.y/.3;for(float f;f++<1e2;p+=.02*sin(p.yx+.5*t))o+=(cos(f/27.+vec4(0,1,3,0))+1.1)/length(sin(p*sin(r+f)/.7));o=tanh(o*o/4e4);

10,899 görüntüleme

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

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

17,855 görüntüleme

Videos

XorDev's profile picture

"Rainbow Travel" by noztol

Xor

23,105 görüntüleme • 22 gün önce

XorDev's profile picture

Traffic: An unused shader concept for a client

Xor

16,689 görüntüleme • 2 ay önce

XorDev's profile picture

Portfolio update. New shaders!

Xor

25,810 görüntüleme • 4 ay önce