// Generated with Shader Minifier 1.3.6 (https://github.com/laurentlb/Shader_Minifier/) #ifndef SHADER_MINIFIED_H_ # define SHADER_MINIFIED_H_ # define VAR_texts "f" # define VAR_texture_sampler "i" # define VAR_u_mouse "k" # define VAR_u_resolution "v" # define VAR_u_time "m" const char *__temp_cleaned_shader_glsl = "uniform vec2 v;" "uniform float m;" "uniform vec2 k;" "uniform sampler2D i,f;struct Ray{vec3 rayDir;vec3 rayOrigin;vec3 hitPos;float distance;bool isHit;};" "const float r=2.*acos(-1.),d=sqrt(5.)*.5+.5;" "float x(vec3 v,vec2 m)" "{" "vec3 f=abs(v);" "return max(f.y-m.y,max(f.x*sqrt(3.)*.5+f.z*.5,f.z)-m.x);" "}" "void x(inout vec2 v)" "{" "float m=acos(-1.)/2.;" "v=cos(m)*v+sin(m)*vec2(v.y,-v.x);" "}" "float p(float v,float m)" "{" "return min(-.1,max(v,m))+length(max(vec2(.1+v,.1+m),vec2(0)));" "}" "mat2 p(float v)" "{" "float m=sin(v),f=cos(v);" "return mat2(f,-m,m,f);" "}" "float p(vec3 v,float m,float i)" "{" "vec3 f=v;" "f.xz*=p(i);" "f.yz*=p(i);" "x(f.yz);" "float r=x(f,vec2(.5+m,.1)),n=x(f,vec2(.2+m,.1));" "return p(r,-n);" "}" "vec2 n(vec3 v)" "{" "float f=0.,r=1e10;" "vec3 i=v;" "i.xz*=p(.745);" "for(float x=1.;x<=6.;x++)" "{" "float n=p(i,x*.35,m+abs(2.+.4*sin(m))*x*3.1415/6.);" "r=min(r,n);" "if(r==n)" "f=1.+mod(x,3.);" "}" "return vec2(r,f);" "}" "vec3 n(vec3 v,vec3 m,inout vec3 f)" "{" "float r=0.,i=0.,x=0.;" "for(int e=0;e<150;e++)" "{" "f=v+m*r;" "vec2 d=n(f);" "r+=d.x;" "i=d.y;" "if(r>80.)" "break;" "if(d.x80.)" "r=-1.;" "return vec3(r,i,x);" "}" "vec3 x(vec3 v,vec3 m,vec3 f)" "{" "float r=0.,i=0.,x=0.;" "for(int e=0;e<50;e++)" "{" "f=v+m*r;" "vec2 d=n(f);" "r+=d.x;" "i=d.y;" "if(r>40.)" "break;" "if(d.x40.)" "r=-1.;" "return vec3(r,i,x);" "}" "float n(vec3 v,vec3 m)" "{" "float r=1.,f=.01;" "for(int i=0;i<40;i++)" "{" "if(f>30.)" "break;" "float x=n(v+f*m).x;" "r=min(r,x/(18.*f));" "f+=clamp(x,.005,.5);" "if(r<-1.||f>30.)" "break;" "}" "r=max(r,-1.);" "return.25*(1.+r)*(1.+r)*(2.-r);" "}" "vec3 s(vec3 v)" "{" "vec2 m=vec2(.001,0);" "vec3 r=vec3(n(v+m.xyy).x-n(v-m.xyy).x,n(v+m.yxy).x-n(v-m.yxy).x,n(v+m.yyx).x-n(v-m.yyx).x);" "return normalize(r);" "}" "vec3 s(vec3 v,vec3 m)" "{" "vec3 r=vec3(.5454);" "return r+(1.-r)*pow(clamp(1.-dot(v,m),0.,1.),5.);" "}" "vec3 n(vec3 v,vec3 m,float r,vec3 f,vec3 i,vec3 x,float y)" "{" "vec3 d=normalize(f),e=vec3(max(0.,dot(d,reflect(i,x)))),z=s(normalize(d-i),d)*y;" "float k=n(f+x*.01,v);" "e=pow(e,vec3(r))*y;" "return m*mix(vec3(1)*vec3(max(0.,dot(d,x))),e,z)*k;" "}" "float t(vec3 v,vec3 m)" "{" "float r=0.,f=1.;" "for(int i=0;i<8;i++)" "{" "float x=.01+.02*float(i*i),d=n(v+m*x).x;" "r+=(x-d)*f;" "f*=.85;" "}" "return 1.-clamp(.6*r,0.,1.);" "}" "vec3 n(vec3 v,vec3 m,vec3 f,float r)" "{" "float i=1.,x=t(v,m);" "vec3 d=vec3(.1529);" "if(r==0.)" "d=vec3(.2863,.1059,.2431),i=1.5;" "else if(r==1.)" "d=vec3(.3294,.0941,.6),i=.6;" "else if(r==2.)" "d=vec3(.5804,.9647,1),i=1.;" "else if(r==3.)" "d=vec3(0),i=1e2;" "else if(r==4.)" "d=vec3(.9961,1,.9922),i=.3;" "vec3 e=vec3(0);" "e+=n(vec3(0,-40,-1),vec3(.56,.44,.18)*2.,i,v,f,m,x);" "e+=n(vec3(-20,4,10),vec3(.04,.2,.71)*2.,i,v,f,m,x);" "vec3 z=vec3(0,4,2);" "float s=n(v+m*.01,z);" "e+=vec3(.6627,.7098,.8863)*clamp(dot(m,z),0.,1.)*s*x;" "e+=vec3(.1333,.1333,.1216)*clamp(dot(m,normalize(z*vec3(-1,0,-1))),0.,1.)*x;" "return d*max(vec3(0),e);" "}" "vec3 t(vec3 r)" "{" "vec2 i=gl_FragCoord.xy/v.xy;" "r=mix(r,r*smoothstep(.8,.4,length(i-vec2(.5))),.9);" "r=mix(r,smoothstep(0.,1.,r),.5);" "r*=vec3(1);" "return pow(r,vec3(1./2.2));" "}" "mat3 e(vec3 m)" "{" "vec3 v=normalize(vec3(0)-m),r=normalize(cross(vec3(0,1,0),v));" "return mat3(r,cross(v,r),v);" "}" "vec3 w(vec2 v)" "{" "vec3 r=vec3(sin(m)*2.,0,4),f=e(r)*normalize(vec3(v,1.2)),i=vec3(0),d=n(r,f,i),z=f,k=vec3(.051,.0667,.1529);" "if(d.z>0.)" "{" "vec3 y=s(i);" "k=n(i,y,f,d.y);" "k=k*exp(-d.x*.04)+mix(k,mix(vec3(.3686,.2431,.4392),vec3(.4,.7294,.9216),pow(max(dot(z,vec3(0,.3,-1)),0.),8.)),1.-exp(-d.x*.04))*(1.-exp(-d.x*.04));" "f=normalize(reflect(f,y));" "vec3 c=i+f*.01,p=x(c,f,i);" "if(p.z>0.)" "i=c+f*p.x,y=s(i),k+=.1*n(i,y,f,p.y);" "}" "return k;" "}" "vec2 e()" "{" "vec2 r=2.*((gl_FragCoord.xy+vec2(0)*.5)/v.xy-.5);" "r.x*=v.x/v.y;" "return r;" "}" "void main()" "{" "vec3 r=vec3(0);" "r+=w(e());" "r=t(r);" "gl_FragColor=vec4(r,1);" "}"; #endif // SHADER_MINIFIED_H_