Loading
R3V3RS3 IT!
a web game in 10kb by GIO
attribute vec4 v;attribute vec3 n;uniform mat4 A,B;varying vec4 G,H;varying vec3 I,J,L;void main(){gl_Position=H=A*vec4(v.xyz,1.);G=vec4(n,v.y);J=v.xyz;L=(B*vec4(-v.xyz,1.)).xyz;I=vec3(fract(v.w)*1.001,floor(v.w)/10000.,B[1].y);}
#extension GL_OES_standard_derivatives : enable precision mediump float;varying vec4 G,H;varying vec3 I,J,L;uniform sampler2D s0,s1,s2,s3,s4;uniform vec4 C;void main(){vec3 a=vec3(0.1,0.05,0.);vec3 b=vec3(0.41,-0.82,0.41);vec3 c=texture2D(s0,I.xy*37.).xyz;vec3 d=texture2D(s1,I.xy*49.).xyz;vec3 e=texture2D(s2,I.xy*51.).xyz;vec4 f=texture2D(s3,I.xy*40.);vec2 g=fract(I.xy*0.5+C.y/1000.);vec4 h=texture2D(s3,g)*smoothstep(0.,0.03,g.x)*smoothstep(0.,0.03,1.-g.x)*smoothstep(0.,0.03,g.y)*smoothstep(0.,0.03,1.-g.y);float i=pow(G.y,8.);vec3 j=mix(e,d,i);float k=clamp((G.w-3.-f.x)/3.,0.,1.);j=mix(c,j,k)*(1.-h.x/2.);vec3 l=G.xyz;~highp float m=max(0.,-dot(b,l));vec3 n=normalize(-b+normalize(L));float o=max(0.,pow(dot(n,l),4.)*(1.-i*0.9)*(1.-k*0.9));vec3 p=m*j+a+o*length(j.xyz)*vec3(0.9,0.8,0.6);gl_FragColor=vec4(p,1.);}
attribute vec4 v;uniform mat4 A,B;uniform vec4 C;varying vec4 I;void main(){gl_Position=vec4(v.xy,0.999,1.);float a=atan(B[2].z,B[2].x)/6.282+0.5;I=vec4(fract(v.w)*C.x/8.-a,floor(v.w)/80000.,C.y,a);}
precision mediump float;varying vec4 I;uniform sampler2D s0;void main(){float a=pow(sin(I.w*3.14),5.);vec3 b=mix(vec3(0.5,0.5,1.),vec3(1.,0.8,0.5),clamp(I.y*10.,0.,1.))+a*vec3(0.8,0.3,0.1);vec2 c=fract(vec2(I.x+I.z*0.001,I.y));vec4 d=texture2D(s0,c);vec3 e=mix(pow(d.xxx,vec3(0.25)),vec3(0.9,0.8,0.6),a)*(1.-pow(d.z,4.));vec4 f=vec4(e,clamp(d.x,0.,1.)*smoothstep(0.,0.03,c.x)*smoothstep(0.,0.03,1.-c.x));c=fract(vec2(I.x+I.z*0.00021+0.5,I.y));d=texture2D(s0,c);e=mix(pow(d.yyy,vec3(0.66,0.66,0.66)),vec3(1.,0.5,0.5),a)*(1.-pow(d.z,4.));vec4 g=vec4(e,clamp(2.*d.y-1.,0.,1.)*smoothstep(0.,0.03,c.x)*smoothstep(0.,0.03,1.-c.x));gl_FragColor=vec4((b*(1.-f.w)+f.xyz*f.w)*(1.-g.w)+g.xyz*g.w,1.);}
precision mediump float;varying vec4 G,H;varying vec3 I;uniform vec4 C;uniform sampler2D s0,s1,s2,s3;@ void main(){float a=texture2D(s1,fract(clamp(I.xy*3.,1.001,1.999)*vec2(1.,-1.))).x*15.;vec4 b=texture2D(s0,I.xy*54.+sin(C.y*0.1)/25.+sin(C.yy*0.1+I.xy*100.)/10.);b.w=a>1.?0.:pow(clamp((1.-a)*5.,0.,1.),1.7);vec2 c=(H.xy*0.5/H.w+0.5);c.y=1.-c.y;vec2 d;d.x=sin(I.x*1000.+sin(C.y*0.4)+a*20.);d.y=sin(I.y*868.+cos(C.y*0.7)+a*20.);float e=1.-pow(H.z*0.5/H.w+0.5,50.);d*=e;c+=d*0.01;vec4 f=texture2D(s2,c);b=mix(b,f,b.w*clamp(I.z,0.,1.)*0.8*clamp(1.-(C.z-2.5)/12.,0.,1.));vec4 z=texture2D(s3,I.xy*100.+sin(C.yy*0.3+d.yx*0.2)*0.1);float threshold=0.3+z.x*z.y;float specular=smoothstep(threshold-0.1,threshold+0.1,pow(M(I.xy*600.,C.y/5.),5.))*pow(e,0.3)*b.w*0.5;b.rgb+=specular;gl_FragColor=b;}
attribute vec4 v;varying vec2 I;void main(){I=vec2(fract(v.w)*1.001,floor(v.w)/10000.);gl_Position=vec4(v.xyz,1.);}
precision mediump float;varying vec2 I;uniform sampler2D s0;uniform vec4 C,D;void main(){vec2 a=I*2.-1.;float b=abs(sin(length(a)*6.28-C.y));float c=min(D.r,min(D.g,D.b));float d=clamp(b+c,0.,1.);vec3 e=texture2D(s0,I+(1.-D.w)*(1.-d)*sin(a)/4.).xyz;vec3 f=mix(e,D.xyz,(1.-d)*0.5);vec3 g=mix(dot(e,vec3(0.299,0.587,0.114))*D.xyz,e,pow(c,4.));gl_FragColor=vec4(mix(f,g,D.w),1.);}
attribute vec4 v;attribute vec3 n;uniform mat4 B,E;uniform vec4 C;uniform vec4 F[16];varying vec3 I;varying vec4 K;void main(){I=vec3(vec2(fract(v.w)*1.001,floor(v.w)/10000.)*2.-1.,C.y/4.);vec4 a=F[int(v.x)];K=vec4(n.xyz,a.w);gl_Position=E*(B*vec4(a.xyz,1.)+vec4(I.xy*(3.+abs(sin(I.z))),0.,0.));}
precision mediump float;uniform sampler2D s0;varying vec3 I;varying vec4 K;@ void main(){vec3 c=K.xyz+M(I.xy+I.z,I.z)*mix(K.zxy,vec3(1),abs(sin(I.z)));gl_FragColor=vec4(c,clamp(1.-pow(length(I.xy),2.),0.,1.)*K.w);}
attribute vec4 v;uniform mat4 A,B;uniform vec4 C;varying vec3 I;void main(){gl_Position=vec4(v.xy,-0.999,1.);I=vec3(v.xy/2.+0.5,C.y/10.);}
precision mediump float;varying vec3 I;uniform vec4 D;@ void main(){float n=sin(3.14*M(I.xy*8.,I.z));vec3 c=vec3(0.69,0.94,1.);gl_FragColor=vec4(c,n*D.w+pow(D.w,8.));}
float N(vec2 p){return fract(sin(p.x + p.y*100.)*100.);} float O(vec2 p){vec2 a=smoothstep(0.,1.,fract(p));float s=mix(N(vec2(floor(p.x),floor(p.y))),N(vec2(ceil(p.x),floor(p.y))),a.x);float n=mix(N(vec2(floor(p.x),ceil(p.y))),N(vec2(ceil(p.x),ceil(p.y))),a.x);return mix(s,n,a.y);} float P(vec2 p,float a){float b=0.;b+=O(p-a);b+=O(p*2.+a)/2.;b+=O(p*4.-a)/4.;b+=O(p*8.+a)/8.;b+=O(p*16.-a)/16.;b/=1.9375;return b;} float M(vec2 p, float a){float x=P(p,a);float y=P(p+100.,a);return P(p+vec2(x,y),a);}
vec4 q=texture2D(s4,I.xy*(50.+200.*k))-0.5;q.xy=mix(q.zw,q.xy,k);vec3 r=dFdx(J);vec3 s=dFdy(J);vec2 t=dFdx(I.xy)*C.w*(1.+4.*k)*C.x;vec2 u=dFdy(I.xy)*C.w*(1.+4.*k);float v=dot(q.xy,t);float w=dot(q.xy,u);vec3 x=cross(s,l);vec3 y=cross(l,r);vec3 z=(x*v+y*w)/dot(r, x);l=normalize(l-z*0.1+(1.-k*0.2));