212 lines
5.3 KiB
C
212 lines
5.3 KiB
C
/* File generated with Shader Minifier 1.1.1
|
|
* http://www.ctrl-alt-test.fr
|
|
*/
|
|
#ifndef FRAGMENT_SMALL_H_
|
|
# define FRAGMENT_SMALL_H_
|
|
# define V_Y "v"
|
|
# define V_Z "x"
|
|
|
|
char fragment_glsl_0[] = ""
|
|
"const int m=0;"
|
|
"varying vec4 v;"
|
|
"varying vec2 x;"
|
|
"vec3 r,i,z,f,s,y,w;"
|
|
"float e,c,a,n,p;"
|
|
"float t(vec2 v)"
|
|
"{"
|
|
"int i=int(v.x*40+v.y*6400);"
|
|
"i=i<<13^i;"
|
|
"return 1-float(i*(i*i*15731+789221)+1376312589&2147483647)/1073741824;"
|
|
"}"
|
|
"float d(vec2 v)"
|
|
"{"
|
|
"v=mod(v,1000.);"
|
|
"vec2 x=fract(v);"
|
|
"v-=x;"
|
|
"vec2 s=x*x*(3.-2.*x);"
|
|
"return mix(mix(t(v+vec2(0,0)),t(v+vec2(1,0)),s.x),mix(t(v+vec2(0,1)),t(v+vec2(1,1)),s.x),s.y);"
|
|
"}"
|
|
"float g(float x)"
|
|
"{"
|
|
"return x*.5+.5;"
|
|
"}"
|
|
"float d(float s,float z,float x)"
|
|
"{"
|
|
"float m=(g(sin(a*2*(s+z+v.x*x)))+g(sin(a*(z-s-v.x*x)))+g(sin(a*(z+v.x*x)))+g(sin(a*3*(s-v.x*x))))*.3;"
|
|
"return pow(m,2.);"
|
|
"}"
|
|
"vec3 h(vec3 x)"
|
|
"{"
|
|
"int v=int(mod(gl_FragCoord.x,3.));"
|
|
"if(v==0)"
|
|
"x*=w.xyz;"
|
|
"if(v==1)"
|
|
"x*=w.yzx;"
|
|
"if(v==2)"
|
|
"x*=w.zxy;"
|
|
"return x;"
|
|
"}"
|
|
"vec3 o(vec3 v)"
|
|
"{"
|
|
"vec2 m=x*2-1;"
|
|
"float y=m.x*(m.y+3);"
|
|
"return v+z*d(y+50*s.x,y+50*s.z,1.5)*g(m.y)*min(-s.y*30,.3);"
|
|
"}"
|
|
"float l(vec2 v)"
|
|
"{"
|
|
"return-.035+pow(d(v.x*10,v.y*10,0.)*2-1,2.)*.05-(v.x-.1)*.2;"
|
|
"}"
|
|
"vec3 u(vec3 v)"
|
|
"{"
|
|
"return normalize(vec3(l(v.xz-vec2(p,0))-l(v.xz+vec2(p,0)),2*p,l(v.xz-vec2(0,p))-l(v.xz+vec2(0,p))));"
|
|
"}"
|
|
"vec3 d(vec3 v,vec3 s)"
|
|
"{"
|
|
"return(.3+.7*max(dot(s,i),0.))*z*v;"
|
|
"}"
|
|
"vec3 M(vec3 v)"
|
|
"{"
|
|
"return normalize(vec3(d(v.x*160-cos(v.z*10)*12,v.z*140,4.),8,d(v.z*160-sin(v.x*10)*12,v.x*140,4.))*2-1);"
|
|
"}"
|
|
"vec3 M(vec3 v,vec3 x)"
|
|
"{"
|
|
"vec3 s=u(v),y=mix(vec3(.66,.55,.4)-.2*d(abs(v.xz*150))-.2*d(abs(v.yy+.002*d(abs(v.xz*150)))*3000),vec3(.1,.3,0)*(d(v.xz*7000.)*.4+.5),clamp(s.y*(d(v.x*111,v.z*111,0.)*.5-v.y*40),0.,1.));"
|
|
"if(v.y<=0)"
|
|
"y+=5*M(.8*v).x*min(.3,-v.y*8);"
|
|
"return d(y,s);"
|
|
"}"
|
|
"vec3 g(vec3 v,vec3 s)"
|
|
"{"
|
|
"return v.y<=-n*n?f:mix(vec3(-.5,-.25,0),vec3(2),1-(s.y*.5+.5));"
|
|
"}"
|
|
"vec3 h(vec3 s,vec3 x)"
|
|
"{"
|
|
"vec3 m,y;"
|
|
"m=normalize(s-r);"
|
|
"vec2 f=.5+.5*vec2(atan(m.z,m.x),acos(m.y))/a;"
|
|
"f.x-=v.x;"
|
|
"y=mix(vec3(1),vec3(1,0,0),mod(step(fract(f.x*6),.5)+step(fract(f.y*6),.5),2.));"
|
|
"return d(y,m)+pow(max(dot(m,normalize(i-x)),0.),33.)*z;"
|
|
"}"
|
|
"float M(vec3 v,vec3 x,float m)"
|
|
"{"
|
|
"float y,s,i,f;"
|
|
"y=0;"
|
|
"vec3 r=v;"
|
|
"for(float z=0;z<m;z+=y)"
|
|
"{"
|
|
"r+=x*y;"
|
|
"f=r.y;"
|
|
"float w=l(r.xz);"
|
|
"if(f<=w)"
|
|
"return z-y+y*(s-i)/(f-w+s-i);"
|
|
"s=w;"
|
|
"i=f;"
|
|
"y=.002+z/c;"
|
|
"}"
|
|
"return 9.;"
|
|
"}"
|
|
"float l(vec3 v,vec3 x)"
|
|
"{"
|
|
"vec3 s=v-r;"
|
|
"float i,y;"
|
|
"i=dot(s,x);"
|
|
"if(i>0)"
|
|
"return 9.;"
|
|
"y=i*i-dot(s,s)+e*e;"
|
|
"if(y>0)"
|
|
"return-i-sqrt(y);"
|
|
"return 9.;"
|
|
"}"
|
|
"float o(vec3 v,vec3 x)"
|
|
"{"
|
|
"float m=-v.y/x.y;"
|
|
"return m>=n?m:9.;"
|
|
"}"
|
|
"vec4 g(vec3 v,vec3 x,int m)"
|
|
"{"
|
|
"float s,i,y,f;"
|
|
"s=m!=2?o(v,x):9.;"
|
|
"i=m!=3?l(v,x):9.;"
|
|
"y=m!=1?M(v,x,min(.5,.002+min(s,i))):9.;"
|
|
"c/=20;"
|
|
"f=min(y,min(s,min(i,9.)));"
|
|
"if(f==9)"
|
|
"return vec4(0);"
|
|
"vec3 z=v+x*f;"
|
|
"if(f==y)"
|
|
"return vec4(z,1);"
|
|
"if(f==s)"
|
|
"return vec4(z,2);"
|
|
"if(f==i)"
|
|
"return vec4(z,3);"
|
|
"}"
|
|
"vec3 h(vec4 v,vec3 x,vec3 m)"
|
|
"{"
|
|
"vec3 y=x.y<n?f:g(s,m);"
|
|
"float i=clamp(length(v.xyz-x)*(s.y<=0?4:2),0.,1.);"
|
|
"if(v.w==1)"
|
|
"return mix(M(v.xyz,m),y,i);"
|
|
"if(v.w==2)"
|
|
"return mix(f,y,i);"
|
|
"if(v.w==3)"
|
|
"return mix(h(v.xyz,m),y,i);"
|
|
"return y;"
|
|
"}"
|
|
"vec3 t(vec3 v,vec3 m)"
|
|
"{"
|
|
"vec3 x=M(v);"
|
|
"vec4 i=g(v,refract(m,x,.9),2);"
|
|
"float z=clamp(pow(1.03*(1-length(i.xyz-v)),16.),0.,1.);"
|
|
"return mix(s.y<0?g(v,m):f,mix(h(g(v,reflect(m,x),2),v,m),h(i,v,m),clamp(-y.y+z,0.,1.)),i.w==3.?.5:pow(z,.5));"
|
|
"}"
|
|
"vec3 l(vec4 v,vec3 m,vec3 x)"
|
|
"{"
|
|
"vec3 y=m.y<n?f:g(s,x);"
|
|
"float i=clamp(length(v.xyz-m)*(s.y<=0?4:2),0.,1.);"
|
|
"if(v.w==1)"
|
|
"return mix(M(v.xyz,x),y,i);"
|
|
"if(v.w==2)"
|
|
"return mix(t(v.xyz,x),y,i);"
|
|
"if(v.w==3)"
|
|
"return mix(mix(h(v.xyz,x),h(g(v.xyz,reflect(x,normalize(v.xyz-r)),3),v.xyz,x),.5),y,i);"
|
|
"return g(m,x);"
|
|
"}"
|
|
"void main()"
|
|
"{"
|
|
"c=100;"
|
|
"a=3.1416;"
|
|
"w=vec3(1.2,.9,.9);"
|
|
"n=.0001;"
|
|
"p=.01;"
|
|
"float m=10;"
|
|
"int d=int(v.x);"
|
|
"y=vec3(x.xy-.5,1);"
|
|
"if(d>22&&d<27)"
|
|
"m=min(1.,sin((v.x-23)*a*.25)*12),s=vec3(.12,.005,v.x*.08),y=vec3(gl_ModelViewMatrix*vec4(y,1)),y.y+=.1*cos(v.x*4);"
|
|
"else"
|
|
" if(d>14&&d<23)"
|
|
"m=min(1.,sin((v.x-15)*a*.125)*24),y+=vec3(0,.1*cos(v.x*4),0),s=vec3(.08,.01*sin(v.x*4)+.002,v.x*.11);"
|
|
"else"
|
|
" s=vec3(.1,.004,0.)+vec3(.1,.005,20)*vec3(t(vec2(d,m++)),t(vec2(d,m++)),t(vec2(d,m++))),s=mix(s+vec3(.008)*vec3(t(vec2(d,m++)),t(vec2(d,m++)),t(vec2(d,m++))),s+vec3(.008)*vec3(t(vec2(d,m++)),t(vec2(d,m++)),t(vec2(d,m++))),v.x-d),s.y+=l(s.xz)+.02,s+=.02*u(s),m=min(1.,step(-28.,-v.x)*sin((v.x-d)*a)*3);"
|
|
"y=normalize(y);"
|
|
"if(d>22&&d<27)"
|
|
"r=s+.1*vec3(gl_ModelViewMatrix*vec4(0,0,1,1));"
|
|
"else"
|
|
" r=s+.02*vec3(sin(v.x),0,5+cos(v.x));"
|
|
"r.y+=.01+l(r.xz);"
|
|
"e=d<14?0.:p*.5+p*v.z;"
|
|
"r+=2*e*u(r);"
|
|
"i=vec3(.58,.58,-.58);"
|
|
"z=vec3(1.2);"
|
|
"f=vec3(.3,.33,.4);"
|
|
"if(s.y<=0)"
|
|
"c*=.75,z*=.8;"
|
|
"vec3 M=l(g(s,y,0),s,y);"
|
|
"if(s.y<=0)"
|
|
"M=o(M);"
|
|
"gl_FragColor.xyz=h(m*M);"
|
|
"}";
|
|
|
|
#endif // FRAGMENT_SMALL_H_
|