mirror of
https://github.com/CookieCollective/Live-Coding-Sources.git
synced 2025-02-01 18:39:35 +01:00
Blue /x80 @ Bar Galia
This commit is contained in:
parent
120fa37184
commit
3a52e910f5
90
2018-10-20/anatol.frag
Normal file
90
2018-10-20/anatol.frag
Normal file
@ -0,0 +1,90 @@
|
||||
|
||||
precision mediump float;
|
||||
|
||||
uniform vec2 resolution;
|
||||
uniform float time;
|
||||
|
||||
|
||||
vec3 lookat (vec3 eye, vec3 at, vec2 uv) {
|
||||
vec3 front = normalize(at-eye);
|
||||
vec3 right = normalize(cross(front, vec3(0,1,0)));
|
||||
vec3 up = normalize(cross(front, right));
|
||||
return normalize(front + right * uv.x + up * uv.y);
|
||||
}
|
||||
|
||||
mat2 rot (float a) {
|
||||
float c = cos(a), s = sin(a);
|
||||
return mat2(c,s,-s,c);
|
||||
}
|
||||
|
||||
|
||||
float hash(float p)
|
||||
{
|
||||
return fract(sin(p)*43557.);
|
||||
}
|
||||
|
||||
float obj(vec3 p)
|
||||
{
|
||||
float d = length(p.xy+vec2(cos(p.z+cos(time*.5)), sin(p.z+cos(time*.25))))-.1+cos(time)*.4;
|
||||
d = min(d, -abs(p.y)+2.);
|
||||
return d;
|
||||
}
|
||||
|
||||
float map(vec3 p)
|
||||
{
|
||||
float d = cos(p.x)+cos(p.y*(cos(time)*.5+.5))+cos(p.z) + cos(p.y*10.)*.1;
|
||||
d = min(d, obj(p));
|
||||
return d;
|
||||
}
|
||||
|
||||
vec3 normal(vec3 p)
|
||||
{
|
||||
vec3 n;
|
||||
vec2 eps = vec2(0.01, 0.);
|
||||
float d = map(p);
|
||||
n.x = d - map(p-eps.xyy);
|
||||
n.y = d - map(p-eps.yxy);
|
||||
n.z = d - map(p-eps.yyx);
|
||||
return normalize(n);
|
||||
}
|
||||
|
||||
vec3 raymarch(vec3 ro, vec3 rd)
|
||||
{
|
||||
vec3 p = ro;
|
||||
for(int i=0; i<64; i++) {
|
||||
float d = map(p);
|
||||
p += rd * d;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
vec3 shade(vec3 ro, vec3 rd, vec3 p, vec3 n)
|
||||
{
|
||||
vec3 col = n*.1+.5;
|
||||
|
||||
col += vec3(rd.x,rd.y,.2) * length(ro-p)*.08;
|
||||
return col;
|
||||
}
|
||||
|
||||
|
||||
void main () {
|
||||
vec2 uv = gl_FragCoord.xy / resolution;
|
||||
uv.x *= resolution.x/resolution.y;
|
||||
vec3 ro = vec3(0.,0.,-2.+time*3.);
|
||||
vec3 rd = normalize(vec3(uv*2.-1., 1.));
|
||||
rd.xy = rot(time*.1) * rd.xy;
|
||||
rd.xz = rot(time*.5) * rd.xz;
|
||||
vec3 p = raymarch(ro,rd);
|
||||
vec3 n = normal(p);
|
||||
vec3 col = vec3(1.);
|
||||
col *= shade(ro,rd,p,n);
|
||||
|
||||
if(obj(p) == map(p))
|
||||
{
|
||||
vec3 rro = p;
|
||||
vec3 rrd = reflect(rd,n);
|
||||
vec3 rp = raymarch(rro+n*.1, rrd);
|
||||
vec3 rn = normal(rp);
|
||||
col *= shade(rro,rrd,rp,rn);
|
||||
}
|
||||
gl_FragColor = vec4(col,1.);
|
||||
}
|
83
2018-10-20/leon.frag
Normal file
83
2018-10-20/leon.frag
Normal file
@ -0,0 +1,83 @@
|
||||
|
||||
precision mediump float;
|
||||
|
||||
uniform vec2 resolution;
|
||||
uniform float time;
|
||||
|
||||
|
||||
vec3 lookat (vec3 eye, vec3 at, vec2 uv) {
|
||||
vec3 front = normalize(at-eye);
|
||||
vec3 right = normalize(cross(front, vec3(0,1,0)));
|
||||
vec3 up = normalize(cross(front, right));
|
||||
return normalize(front + right * uv.x + up * uv.y);
|
||||
}
|
||||
|
||||
mat2 rot (float a) {
|
||||
float c = cos(a), s = sin(a);
|
||||
return mat2(c,-s,s,c);
|
||||
}
|
||||
|
||||
float smin (float a, float b, float r) {
|
||||
float h = clamp(.5+.5*(b-a), 0., 1.);
|
||||
return mix(b,a,h)-r*h*(1.-h);
|
||||
}
|
||||
|
||||
float repeat( float p, float c) { return mod(p,c)-c/2.; }
|
||||
|
||||
float map (vec3 pos) {
|
||||
float scene = 10.;
|
||||
const float count = 8.;
|
||||
// pos.xz *= rot(length(pos));
|
||||
vec3 p = pos;
|
||||
// p.xz *
|
||||
float s = 10.;
|
||||
for (float i = count; i > 0.; --i) {
|
||||
float r = i / count;
|
||||
pos = abs(pos)-.2*r;
|
||||
pos.xz *= rot(time * .05);
|
||||
// pos.xz *= rot(sin(time * 4.)*.5);
|
||||
pos.yz *= rot(time * .01);
|
||||
// pos.yx *= rot(time * 1.5);
|
||||
float b = .24 * r;
|
||||
// scene = smin(scene, length(pos)-.1*r, b);//+.5*sin(time));
|
||||
// scene = smin(scene, length(pos.xz)-.1*r, b);//+.5*sin(time));
|
||||
scene = min(scene, max(pos.x, max(pos.y, pos.z)));
|
||||
vec3 pp = pos;
|
||||
// pp.xy *= rot(time * .2);
|
||||
// pp.zy *= rot(sin(time*8.) * .2);
|
||||
// pp.xz *= rot(time * .4);
|
||||
s = min(s, length(pp.yz)-.01);
|
||||
|
||||
pp.x = repeat(pp.x + time * .01, .4);
|
||||
s = min(s, length(pp)-.1*r);
|
||||
// s = min(s, length(pp.xz)-.01*r);
|
||||
}
|
||||
scene = max(-scene, length(p)-1.);
|
||||
scene = min(scene, s);
|
||||
// scene = length(pos)-.1;//+.5 * sin(time*5.);
|
||||
return scene;
|
||||
}
|
||||
|
||||
void main () {
|
||||
vec2 uv = gl_FragCoord.xy / resolution;
|
||||
uv = uv * 2. - 1.;
|
||||
uv.x *= resolution.x / resolution.y;
|
||||
vec3 eye = vec3(0,0,-3.);
|
||||
eye.z += sin(time * 2.) * .25;
|
||||
eye.xz *= rot(time*.5);
|
||||
eye.yz *= rot(time*.5);
|
||||
vec3 target = vec3(0);
|
||||
vec3 ray = lookat(eye, target, uv);
|
||||
float shade = 0.;
|
||||
const float count = 30.;
|
||||
for (float i = count; i > 0.; --i) {
|
||||
float dist = map(eye);
|
||||
if (dist < .001) {
|
||||
shade = i / count;
|
||||
break;
|
||||
}
|
||||
eye += ray * dist;
|
||||
}
|
||||
vec3 color = vec3(.5) + vec3(.5) * cos(time*vec3(.1,.2,.3)*4. + shade * 4.);
|
||||
gl_FragColor = vec4(color*shade, 1.);
|
||||
}
|
83
2018-10-20/theo.frag
Normal file
83
2018-10-20/theo.frag
Normal file
@ -0,0 +1,83 @@
|
||||
|
||||
precision mediump float;
|
||||
|
||||
uniform vec2 resolution;
|
||||
uniform float time;
|
||||
|
||||
|
||||
vec3 lookat (vec3 eye, vec3 at, vec2 uv) {
|
||||
vec3 front = normalize(at-eye);
|
||||
vec3 right = normalize(cross(front, vec3(0,1,0)));
|
||||
vec3 up = normalize(cross(front, right));
|
||||
return normalize(front + right * uv.x + up * uv.y);
|
||||
}
|
||||
|
||||
mat2 rot (float a) {
|
||||
float c = cos(a), s = sin(a);
|
||||
return mat2(c,-s,s,c);
|
||||
}
|
||||
|
||||
float smin (float a, float b, float r) {
|
||||
float h = clamp(.5+.5*(b-a), 0., 1.);
|
||||
return mix(b,a,h)-r*h*(1.-h);
|
||||
}
|
||||
|
||||
float repeat( float p, float c) { return mod(p,c)-c/2.; }
|
||||
float box(vec3 p, vec3 b) {
|
||||
b=abs(p)-b;
|
||||
return min(max(b.x, max(b.y, b.z)),0.) + length(max(b, 0.));
|
||||
}
|
||||
float sc(vec3 p,float d){
|
||||
p=abs(p);p=max(p,p.yzx);
|
||||
return min(p.x,min(p.y,p.z))-d;
|
||||
}
|
||||
|
||||
mat2 r2d(float a){float c=cos(a),s=sin(a);return mat2(c,s,-s,c);}
|
||||
vec3 re(vec3 p, float d){return mod(p-d*.5,d)-d*.5;}
|
||||
float g=0.;
|
||||
float de(vec3 p){
|
||||
//p.y+=.5;
|
||||
|
||||
float t = time*6.;
|
||||
float s1 = .77+2.5*(t*.1+sin(t)*.1);
|
||||
p.xz*=r2d(s1);
|
||||
p.xy*=r2d(s1);
|
||||
|
||||
|
||||
float d= box(p, vec3(1));
|
||||
|
||||
float s=1.;
|
||||
vec3 q = p;
|
||||
|
||||
for(int m=0;m<3;m++) {
|
||||
q = re(p*s, 2.);
|
||||
s*=3.;
|
||||
d = max(d, -sc(2.-abs(q)*3., 1.)/s);
|
||||
}
|
||||
|
||||
d = min(d, sc(1.-abs(q), .1));
|
||||
g+=.01/(.01+d*d);
|
||||
return d;
|
||||
return sc(p,.3);
|
||||
return length(p)-1.;
|
||||
}
|
||||
void main () {
|
||||
vec2 uv = gl_FragCoord.xy / resolution;
|
||||
uv -= .5;
|
||||
uv.x *= resolution.x / resolution.y + tan(time)*.4;
|
||||
|
||||
vec3 ro=vec3(0,0,-2),rd=normalize(vec3(uv,.7-length(uv))),p;
|
||||
float ri,t=0.;
|
||||
for(float i=0.;i<1.;i+=.01) {
|
||||
ri=i;
|
||||
p = ro+rd*t;
|
||||
float d = de(p);
|
||||
//if(d<.001)break;
|
||||
d = max(abs(d), .002);
|
||||
t+=d*.5;
|
||||
}
|
||||
vec3 c = mix(vec3(.1, .3, .3), vec3(.1, .1, .2), length(uv*2.)+ri);
|
||||
c.r+=(sin(time*4.)*.5+.5)*.1;
|
||||
c+=g*.007;
|
||||
gl_FragColor = vec4(c, 1);
|
||||
}
|
Loading…
Reference in New Issue
Block a user