Xor's banner
Xor's profile picture

Xor

@XorDev • 41,346 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,381 просмотров

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 просмотров

Fever f z,d @(70) { f3 p = z * nor(2*C.rgb - R.xyy) p.xy *= mat2(cos(z*.5+f4(,33,11,))) p.z-=T; d=2; @(5) d+=d, p += sin(p.yzx*d+z) / d z += min(abs(cos(p.y)),d=len(1/tan(p.xz)))/4; O += f4(1.1+sin(p),)/d } O = tanh(O / 2e2)

Fever f z,d @(70) { f3 p = z * nor(2*C.rgb - R.xyy) p.xy *= mat2(cos(z*.5+f4(,33,11,))) p.z-=T; d=2; @(5) d+=d, p += sin(p.yzx*d+z) / d z += min(abs(cos(p.y)),d=len(1/tan(p.xz)))/4; O += f4(1.1+sin(p),)/d } O = tanh(O / 2e2)

23,553 просмотров

"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,630 просмотров

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,465 просмотров

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 просмотров

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 просмотров

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,622 просмотров

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

101,129 просмотров

"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 просмотров

"Shooting Stars" in 164 chars #つぶやきGLSL vec2 p,b=vec2(0,.2);for(float i=.9;i++<20.;)o+=1e-3/length(clamp(p=rotate2D(i)*(fract((FC.xy/r.y*i*.2+t*b)*rotate2D(i))-.5),-b,b)-p)*(cos(p.y/.1+vec4(0,1,2,3))+1.); Demo:

"Shooting Stars" in 164 chars #つぶやきGLSL vec2 p,b=vec2(0,.2);for(float i=.9;i++<20.;)o+=1e-3/length(clamp(p=rotate2D(i)*(fract((FC.xy/r.y*i*.2+t*b)*rotate2D(i))-.5),-b,b)-p)*(cos(p.y/.1+vec4(0,1,2,3))+1.); Demo:

75,347 просмотров

"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,186 просмотров

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

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

13,068 просмотров

"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 просмотров

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 просмотров

"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 просмотров

Videos

XorDev's profile picture

New Portfolio

Xor

10,564 просмотров • 7 дней назад

XorDev's profile picture

Introducing FragCoord: My ultimate shader editing tool!

Xor

137,201 просмотров • 8 месяцев назад

XorDev's profile picture

I Eat Pixels

Xor

39,971 просмотров • 3 месяцев назад

XorDev's profile picture

"Rainbow Travel" by noztol

Xor

24,284 просмотров • 5 месяцев назад

XorDev's profile picture

Erosion demo based on Rune Skovbo Johansen →🦋🐘's work

Xor

27,989 просмотров • 6 месяцев назад