Xor's banner
Xor's profile picture

Xor

@XorDev39,963 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:

184,904 次观看

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 次观看

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,822 次观看

"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 次观看

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,525 次观看

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 次观看

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 次观看

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 次观看

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

98,295 次观看

"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 次观看

"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 次观看

"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,137 次观看

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

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

13,068 次观看

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 次观看

"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 次观看

"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 次观看

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 次观看

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 次观看

"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 次观看

Videos

XorDev's profile picture

I Eat Pixels

Xor

39,176 次观看 • 23 天前

XorDev's profile picture

"Rainbow Travel" by noztol

Xor

23,957 次观看 • 2 个月前

XorDev's profile picture

Portfolio update. New shaders!

Xor

25,810 次观看 • 6 个月前