From 779fb65edc673c41c83259cb6bb5c39eeaf402ec Mon Sep 17 00:00:00 2001 From: Jonathan Giroux Date: Sun, 22 Apr 2018 16:20:00 +0200 Subject: [PATCH] Add 2018-04-07 --- 2018-04-07/.vedarc | 12 +++++ 2018-04-07/01-elie.frag | 56 ++++++++++++++++++++ 2018-04-07/02-koltes.frag | 89 +++++++++++++++++++++++++++++++ 2018-04-07/03-elie.frag | 93 ++++++++++++++++++++++++++++++++ 2018-04-07/04-elie.frag | 51 ++++++++++++++++++ 2018-04-07/05-adrian.frag | 71 +++++++++++++++++++++++++ 2018-04-07/06-jeanmichel.frag | 97 ++++++++++++++++++++++++++++++++++ 2018-04-07/07-koltes.frag | 69 ++++++++++++++++++++++++ 2018-04-07/Readme.md | 19 +++++++ 2018-04-07/guinness.png | Bin 0 -> 31118 bytes 10 files changed, 557 insertions(+) create mode 100644 2018-04-07/.vedarc create mode 100644 2018-04-07/01-elie.frag create mode 100644 2018-04-07/02-koltes.frag create mode 100644 2018-04-07/03-elie.frag create mode 100644 2018-04-07/04-elie.frag create mode 100644 2018-04-07/05-adrian.frag create mode 100644 2018-04-07/06-jeanmichel.frag create mode 100644 2018-04-07/07-koltes.frag create mode 100644 2018-04-07/Readme.md create mode 100644 2018-04-07/guinness.png diff --git a/2018-04-07/.vedarc b/2018-04-07/.vedarc new file mode 100644 index 0000000..92e7bac --- /dev/null +++ b/2018-04-07/.vedarc @@ -0,0 +1,12 @@ +{ + "IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 1, + "audio": true, + "camera": true, + "keyboard": false, + "midi": false, +} diff --git a/2018-04-07/01-elie.frag b/2018-04-07/01-elie.frag new file mode 100644 index 0000000..5e8d22d --- /dev/null +++ b/2018-04-07/01-elie.frag @@ -0,0 +1,56 @@ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +vec3 circle(vec2 uv, vec2 pos,float r, float s){ +vec3 res = vec3 (smoothstep(r,r+s,length(uv-pos))); +return res; +} + +void main () { + vec2 uv = gl_FragCoord.xy / resolution.xy; + vec2 uv0 = uv; + + uv.x += sin(uv.y) / uv.y * exp(sin(time * 0.3)) * 0.5; + uv.y += sin(uv.x) / uv.x * 0.1; + + uv -= .5; + uv.x *= resolution.x / resolution.y; + float a = atan(uv.y, uv.x), + d = length(uv); + a=a/6.2831+.5; + d-=time*.1; + + float a0 = a + fract(d); + float r1 = sin(time) + sin(a * 31.4); + float r2 = sin(time + 3.14) + sin(a0 * 31.4 + 1.51 * pow(sin(time + a0 * 32.), 2.)); + float r3 = sin(time + 3.14) + sin(-a0 * 31.4 + 1.51 * pow(sin(-time - a0 * 32.), 2.)); + vec3 c1 = circle (uv0.xy, vec2(0.5,0.5),r1,0.35); + vec3 c2 = circle (uv0.xy, vec2(0.5,0.5),r2,0.5); + vec3 c3 = circle (uv0.xy, vec2(0.5,0.5),r3,0.5); + c1-=c2; + + vec3 color = texture2D(camera, vec2(a, fract(d))).rgb; + vec3 color2 = texture2D(camera, vec2(a, fract(d)) * 2.).rgb; + + //color -= color2 * 0.5; + + color.x*=1./(c1.x); + color.y *= 1./c2.x; + color.b *= c3.r; + + //color -= color2 * 2.; + + gl_FragColor = vec4(color,1.); +} diff --git a/2018-04-07/02-koltes.frag b/2018-04-07/02-koltes.frag new file mode 100644 index 0000000..12957f8 --- /dev/null +++ b/2018-04-07/02-koltes.frag @@ -0,0 +1,89 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 1.5, + "audio": true, + "camera": true, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +struct D { + float d; + vec3 c; + float m; +}; + +D map(vec3 p){ + p.xy *= rot(time * .3 + p.z * .01); + p.yz *= rot(time * .5); + float rp=4. + sin(time) * 2.; + vec3 idx=floor((p+rp)/rp/2.); + p = mod(p + rp, 2.*rp) - rp; + + p.xy *= rot(time * sin(idx.x)); + p.yz *= rot(time * sin(idx.y)); + + D d; + float r = mix(.8,1.,smoothstep(-1.,1.,p.y)-.5); + d.d= length(p.xz) - r; + d.d = max(d.d, abs(p.y)-1.5); + float a=(atan(p.z,p.x)/6.2831+.5)*2.; + vec4 logo = texture2D(guinness, vec2(a, p.y * 1.)); + logo.rgb=mix(logo.rgb, 1.-logo.rgb, 1.-length(logo.rgb)); + vec3 blk=mix(vec3(.1), logo.rgb, logo.a); + d.c=mix(blk,vec3(1),step(1.2,p.y)); + + d.m = mix(.01, .05, step(0., length(p.xz) - r - .2)); + return d; +} + +vec3 pal(float t, vec3 a, vec3 b, vec3 c, vec3 d){ + return a+b*cos(6.2831*(c*t+d)); +} + +void main () { + vec2 uv = gl_FragCoord.xy / resolution.xy; + uv -= .5; + uv.x *= resolution.x / resolution.y; + + vec3 ro=vec3(0,0,-8), + rd=normalize(vec3(uv,1.-length(uv*.5))), + mp=ro + rd * 6.; + float ff; + D d; + vec3 c; + for (float f=0.;f<50.;f+=1.){ + ff = f; + d=map(mp); + if (abs(d.d)<.001)break; + if (d.d<.5) + c += d.c; + mp+=max(d.d, d.m)*rd; + } + c *= .05; + //c *= 1. - ff/50.; + vec3 green = pal(time*.2 - length(uv), vec3(.2, .8, .3), vec3(.2), vec3(1., 3., 2.), vec3(0.)); + //c = mix(green, c, 1.-smoothstep(45., 49., ff)); + gl_FragColor = vec4(c,1); + } diff --git a/2018-04-07/03-elie.frag b/2018-04-07/03-elie.frag new file mode 100644 index 0000000..8d93e85 --- /dev/null +++ b/2018-04-07/03-elie.frag @@ -0,0 +1,93 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 1, + "audio": true, + "camera": false, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +struct D { + float d; + vec3 c; +}; + +D map(vec3 p){ + p.xy *= rot(time * .3 + p.z * .01); + p.yz *= rot(time * .5); + D d; + d.d= length(p.xz) - 0.5; + d.c=vec3(1); + + float t = time * 0.01; + float t2 = time * 1.; + p.yz *= sin(exp((sin(t2) * sin(t2) + sin(t2 * 1.41) * sin(t2 * 1.41)) * 0.5) * 0.2 * p.x); + + for (float z = 0. ; z < 5. ; z += 1.) { + float c = cos(t + 0.1 + z * 0.2); + float s = sin(t + 0.1 + z * 0.2); + p.xy *= mat2(c, s, -s, c); + d.d = min(d.d, length(p.yz) - 0.5); + } + + + return d; +} + +vec3 pal(float t, vec3 a, vec3 b, vec3 c, vec3 d){ + return a+b*cos(6.2831*(c*t+d)); +} + +void main () { + vec2 uv = gl_FragCoord.xy / resolution.xy; + uv -= .5; + uv.x *= resolution.x / resolution.y; + + vec3 ro=vec3(0,0,-8), + rd=normalize(vec3(uv,1.-length(uv*.5))), + mp=ro + rd * 6.; + float ff; + D d; + vec3 c; + for (float f=0.;f<50.;f+=1.){ + ff = f; + d=map(mp); + if (abs(d.d)<.001)break; + if (d.d<.5) + c += d.c; + mp+=d.d*rd; + } + c *= .05; + + vec3 b = vec3(1.0); + float tt = step(mod(time * 10., 5.), 4.); + float ttt = step(mod(time * 5., 5.), 4.); + b = mix(vec3(1.0, ttt / 5., 0.0), b, 0.8 + tt * 0.1); + c = pal(ff/30., vec3(1.0), b, vec3(0.5, 0.3, 0.1), vec3(0.5)); + + //c *= mix(c, 1. - c, pow(normalize(length(c)), 0.2)); + c *= mix(c, 1. - c, c.g * 3.); + + gl_FragColor = vec4(c,1); + } diff --git a/2018-04-07/04-elie.frag b/2018-04-07/04-elie.frag new file mode 100644 index 0000000..93e7f1a --- /dev/null +++ b/2018-04-07/04-elie.frag @@ -0,0 +1,51 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 1, + "audio": true, + "camera": false, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +vec3 pal(float t, vec3 a, vec3 b, vec3 c, vec3 d){ + return a+b*cos(6.2831*(c*t+d)); +} + +void main () { + vec2 uv = gl_FragCoord.xy / resolution.xy; + //uv -= .5; + // + uv.x *= resolution.x / resolution.y; + + float d = length(uv - vec2(0.5, 0.5)); + + + uv.x += sin(2. * time + uv.x * 10.) * sin(exp(sin(time * 1. + uv.x * 10.)) + uv.y * 10.); + + vec3 c = vec3(uv, 0.); + + c *= 1. - step(d, .05); + + gl_FragColor = vec4(c,1); + } diff --git a/2018-04-07/05-adrian.frag b/2018-04-07/05-adrian.frag new file mode 100644 index 0000000..25e6a51 --- /dev/null +++ b/2018-04-07/05-adrian.frag @@ -0,0 +1,71 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 1, + "audio": true, + "camera": false, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +vec3 pal(float t, vec3 a, vec3 b, vec3 c, vec3 d){ + return a+b*cos(6.2831*(c*t+d)); +} + +void main () { + vec2 uv = gl_FragCoord.xy / resolution.xy; + //uv -= .5; + // + float width = resolution.x / resolution.y; + uv.x *= resolution.x / resolution.y; + + //float xCircle = vec2((0.5+0.5*sin(1.*time)) * width * 0.5; + // + float timeOffset = 0.; + float minDist = 10000.; + for (int i = 0; i < 40; i += 1) + { + timeOffset += 0.024; + vec2 happy = vec2((0.5+0.2*sin(2.7*(time+timeOffset))) * width, (0.5+0.2*cos(0.2+1.9*(time+timeOffset)))); + minDist = min(minDist, length(uv - happy) + (0.016*40. - timeOffset) * .1 ); + } + float d = length(uv - vec2((0.5+0.3*sin(1.*time)) * width, (0.5+0.3*cos(0.2+1.3*time)))); + //float d1 = length(uv - vec2((0.5+0.2*sin(2.7*time)) * width, (0.5+0.2*cos(0.2+1.9*time)))); + + + + uv.x += sin(2. * time + uv.x * 10.) * sin(exp(sin(time * 1. + uv.x * 10.)) + uv.y * 10.); + + vec3 c = vec3(uv, 0.); + + //c *= 1. - (step(min(minDist, d), .05)); + c *= 1. - (smoothstep(min(minDist, d), .015, 0.075)); + + float t = sin(time) * sin(time) + sin(3.14 * time * uv.y) * sin(3.14 * time); + c = pal(c.x, vec3(0.5), vec3(0.5, 1.0, 0.3), vec3(1.0, 0.5, 0.4 + t * 0.2), vec3(0.5)); + + + + vec4 almost = vec4(c,1) * (uv.x * cos(mod(time, 3.14 * 2.)) - uv.y * sin(mod(-time, 3.14 * 2.))); + gl_FragColor = almost ; + } diff --git a/2018-04-07/06-jeanmichel.frag b/2018-04-07/06-jeanmichel.frag new file mode 100644 index 0000000..e20621a --- /dev/null +++ b/2018-04-07/06-jeanmichel.frag @@ -0,0 +1,97 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 2, + "audio": true, + "camera": false, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +vec3 circle(vec2 uv, vec2 pos, float r, float s){ + +vec3 res = vec3(smoothstep(r,r-s,length(uv+pos)-r)); +return res; +} + + +void main () { + + vec2 uv = gl_FragCoord.xy / resolution.xy; + uv-=0.5; + uv.x *= resolution.x / resolution.y; + + vec3 res; + + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i),0.5*cos(0.5*time+i)); + vec3 col =circle (uv.xy,pos,0.02,0.01); + col.x*=i; + res+= col; + + } + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i),0.5*cos(0.5*time+i)); + + res-= circle (uv.xy,pos,0.01,0.01); + } + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i+3.14),0.5*cos(0.5*time+i)); + vec3 col =circle (uv.xy,pos,0.02,0.01); + col.x*=i; + res+= col; + + } + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i+3.14),0.5*cos(0.5*time+i)); + + res-= circle (uv.xy,pos,0.01,0.01); + } + + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i+3.14*0.5),0.5*cos(0.5*time+i)); + vec3 col =circle (uv.xy,pos,0.02,0.01); + col.x*=i; + res+= col; + + } + + for (float i=0.; i<100.;i+=1.){ + vec2 pos=vec2(0.5*sin(time+i+3.14*0.5),0.5*cos(0.5*time+i)); + + res-= circle (uv.xy,pos,0.01,0.01); + } + + + + + + + + gl_FragColor=vec4(res,1.); + } diff --git a/2018-04-07/07-koltes.frag b/2018-04-07/07-koltes.frag new file mode 100644 index 0000000..2d5364f --- /dev/null +++ b/2018-04-07/07-koltes.frag @@ -0,0 +1,69 @@ +/* +{"IMPORTED": { + "guinness": { + "PATH": "./guinness.png", + }, + }, + "pixelRatio": 2, + "audio": true, + "camera": false, + "keyboard": true, + "midi": true, +} +*/ +precision mediump float; + +uniform float time; +uniform vec2 resolution; +uniform sampler2D camera; +uniform sampler2D key; +uniform sampler2D samples; +uniform sampler2D spetrum; + +uniform sampler2D guinness; + +mat2 rot(float a) +{ + float c = cos(a), s = sin(a); + return mat2(c, s, -s, c); +} + +#define rand(x) fract(sin(x)*1e4) + +float map(vec3 p){ + p.z -= time * 5.; + p.xy *= rot(p.z * .05); + vec3 idx=floor((p)/6.); + p = mod(p, 6.) - 3.; + p.xz *= rot(time * .5 + sin(idx.x)); + p.xy *= rot(time * .8 + sin(idx.y)); + p.yz *= rot(time * .8 + sin(idx.z)); + //p.xy += -2. + 4.*rand(idx.xy + vec2(0., 3.)); + float a=atan(p.y,p.x)/6.2831; + a+=1./8.; + a=floor(a*4.)/4.; + p.xy*=rot(a*6.2831); + p.x-=abs(p.y)*.8+.9; + p.y*=1.2; + p.z=sqrt(abs(p.z)*3.); + return length(p)-1.; +} + + +void main () { + + vec2 uv = gl_FragCoord.xy / resolution.xy; + uv-=0.5; + uv.x *= resolution.x / resolution.y; + + vec3 ro=vec3(0,0,-5),rd=normalize(vec3(uv,1.-length(uv)*.5)),mp=ro+rd*3.; + float ff; + for (float f=0.;f<30.;++f){ + ff=f; + float d=map(mp); + if (d<0.01)break; + mp+=rd*d; + } + vec3 c=mix(vec3(0,1,0) *(1. -ff/30.), vec3(0), smoothstep(25.,30.,ff)); + gl_FragColor=vec4(c,1.); + } diff --git a/2018-04-07/Readme.md b/2018-04-07/Readme.md new file mode 100644 index 0000000..ebab1a8 --- /dev/null +++ b/2018-04-07/Readme.md @@ -0,0 +1,19 @@ +# Shader Showdown Paris #7 + +On April 7th, 2018 at [O'Regans, Laval, France](https://www.facebook.com/ORegans-135863436463053/). + +[Video on YouTube](https://youtu.be/6ul-jeLTQbM) + +## Exquisite Shader + +1. Elie +2. Koltes +3. Elie +4. Elie +5. Adrian +6. Jean-Michel +7. Koltes + +## Software + +- [VEDA](https://veda.gl/) (`.frag`) diff --git a/2018-04-07/guinness.png b/2018-04-07/guinness.png new file mode 100644 index 0000000000000000000000000000000000000000..b6e313490c4fbc0d42963913b590cd045198fdd7 GIT binary patch literal 31118 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 z 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 kY`!|({C~KV0nYhg(uhDtw47uAAGTfq2LJ#7 literal 0 HcmV?d00001