Created Quill, Shadertoy, Pixar's Wondermoss. Math & Art Videos at
* https://t.co/ugnT5WuRWq
* https://t.co/w20vMC2I7d
* https://t.co/SRkBTFQQLP
Shorts
Here's some cute bounding box functions for 2D shapes. A link to a longer list in the next post.
173,914 次观看
Deforming a sphere with sine waves.
85,922 次观看
// Any three (non colinear) points define a circle // { .xy=center, .z=radius } vec3 getCircle( vec2 a, vec2 b, vec2 c ) { vec2 ba = b-a, cb = c-b, ac = a-c; float de = ba.x*cb.y-ba.y*cb.x; // zero if colinear vec2 ce = 0.5*(a+b+vec2(ba.y,-ba.x)*dot(ac,cb)/de); return vec3( ce, length(a-ce) ); }
72,883 次观看
Everybody is excited about fitting things to things, so here are 500 gaussians splatted at will (4000 bytes uncompressed). It's a remake of the experiment I wrote about in 2010, but with anisotropy in the gaussians, which makes it much better.
57,297 次观看
void mainImage(out vec4 c,vec2 p){for(c=vec4(p/iResolution.y,1,0)-.6;p.x-->0.;c*=.9+.1*length(cos(c.xyz+.7*c.x+vec3(0,0,iTime)))+.01*cos(4.*c.y));c=(c+c.z)*.1;} For Shadertoy golfers, this uses no temporary variables!
56,599 次观看
The XOR of two SDFs, is also an SDFs; always:
42,825 次观看
Shadertoy doodle - an exercise on raytracing 32,000 spheres without using a stack data structure.