Files
4kintro/shader_minified.h

157 lines
3.5 KiB
C

// Generated with Shader Minifier 1.3.6 (https://github.com/laurentlb/Shader_Minifier/)
#ifndef SHADER_MINIFIED_H_
# define SHADER_MINIFIED_H_
# define VAR_resolution "s"
# define VAR_texts "c"
# define VAR_texture_sampler "m"
# define VAR_time "v"
const char *__temp_cleaned_shader_glsl =
"uniform float v;"
"uniform vec2 s;"
"uniform sampler2D m,c;"
"float f=0.;"
"vec2 n(vec2 v)"
"{"
"return vec2(v.x*v.x-v.y*v.y,2.*v.x*v.y);"
"}"
"mat2 t(float v)"
"{"
"return mat2(cos(v),sin(v),-sin(v),cos(v));"
"}"
"vec2 n(vec3 v,vec3 y)"
"{"
"vec4 s=vec4(0,0,0,2);"
"vec3 f=v-s.xyz;"
"float t=dot(f,y),m=t*t-dot(f,f)+s.w*s.w;"
"if(m<0.)"
"return vec2(-1);"
"m=sqrt(m);"
"return vec2(-t-m,-t+m);"
"}"
"float x(vec3 v)"
"{"
"float f=0.;"
"vec3 y=v;"
"for(int m=0;m<10;++m)"
"v=.7*abs(v)/dot(v,v)-.7,v.yz=n(v.yz),v=v.zxy,f+=exp(-19.*abs(dot(v,y)));"
"return f/2.;"
"}"
"vec3 n(vec3 v,vec3 y,vec2 s)"
"{"
"float f=s.x;"
"vec3 m=vec3(0);"
"float r=0.;"
"for(int i=0;i<64;i++)"
"{"
"f+=.02*exp(-2.*r);"
"if(f>s.y)"
"break;"
"r=x(v+f*y);"
"m=.99*m+.08*vec3(r*r,r,r*r*r);"
"}"
"return m;"
"}"
"void t(out vec4 f,vec2 y)"
"{"
"float r=v;"
"vec2 i=-1.+2.*(y.xy/s.xy);"
"i.x*=s.x/s.y;"
"vec2 d=vec2(0);"
"d-=.5;"
"vec3 a=vec3(4);"
"a.yz*=t(d.y);"
"a.xz*=t(d.x+.1*r);"
"vec3 c=normalize(vec3(0)-a),g=normalize(cross(c,vec3(0,1,0))),z=normalize(i.x*g+i.y*normalize(cross(g,c))+4.*c);"
"vec2 o=n(a,z);"
"vec3 x=n(a,z,o);"
"if(o.x<0.)"
"x=texture2D(m,z).xyz;"
"else"
"{"
"vec3 e=(a+o.x*z)/2.;"
"e=reflect(z,e);"
"float l=pow(.5+clamp(dot(e,z),0.,1.),3.)*1.3;"
"x+=texture2D(m,e).xyz*l;"
"}"
"x=.5*log(1.+x);"
"x=clamp(x,0.,1.);"
"f=vec4(x,1);"
"}"
"float e(vec3 v)"
"{"
"vec3 f=abs(v)-vec3(.4,.4,.1);"
"return length(max(f,0.))+min(max(f.x,max(f.y,f.z)),0.);"
"}"
"float e(vec3 v,float y)"
"{"
"v*=y;"
"float f=e(v)/1.5;"
"v.xy*=5.;"
"v.y-=3.5;"
"v.xy*=t(.75);"
"return-f;"
"}"
"float x(vec3 v,float y)"
"{"
"vec3 m=v;"
"v=m;"
"v.y+=sin(f*.4)*2.5;"
"v.xy*=t(.8);"
"float s=e(v,2.-abs(sin(f*.4))*1.5);"
"v=m;"
"v.y-=sin(f*.4)*2.5;"
"v.xy*=t(.8);"
"float z=e(v,2.-abs(sin(f*.4))*1.5);"
"v=m;"
"v.x+=sin(f*.4)*2.5;"
"v.xy*=t(.8);"
"float r=e(v,2.-abs(sin(f*.4))*1.5);"
"v=m;"
"v.x-=sin(f*.4)*2.5;"
"v.xy*=t(.8);"
"float c=e(v,2.-abs(sin(f*.4))*1.5);"
"v=m;"
"v.xy*=t(.8);"
"float x=e(v,.5)*6.;"
"v=m;"
"float g=e(v,.5)*6.;"
"return max(max(max(max(max(s,z),r),c),x),g);"
"}"
"void p(out vec4 m,vec2 y)"
"{"
"vec3 r=vec3(0,-.2,v*4.),z=normalize(vec3((y.xy*2.-s.xy)/min(s.x,s.y),1.5));"
"z.xy=z.xy*t(sin(v*.03)*5.);"
"z.yz=z.yz*t(sin(v*.05)*.2);"
"float a=.1;"
"vec3 i=vec3(0);"
"float c=0.;"
"for(int e=0;e<99;e++)"
"{"
"vec3 d=r+z*a;"
"d=mod(d-2.,4.)-2.;"
"f=v-float(e)*.01;"
"float g=x(d,v);"
"g=max(abs(g),.01);"
"c+=exp(-g*23.);"
"a+=g*.55;"
"}"
"i=vec3(c*.02);"
"i+=vec3(0,.2*abs(sin(v)),.5+sin(v)*.2);"
"m=vec4(i,1.-a*(.02+.02*sin(v)));"
"}"
"void main()"
"{"
"if(floor(abs(v)/(60./133))<=8)"
"t(gl_FragColor,gl_FragCoord.xy);"
"else"
" p(gl_FragColor,gl_FragCoord.xy);"
"vec3 f;"
"vec2 m=gl_FragCoord.xy/s-vec2(0,-.35);"
"if(m.y>0.)"
"f=gl_FragColor+texture2D(c,m);"
"gl_FragColor=vec4(f,1);"
"}";
#endif // SHADER_MINIFIED_H_