Files
4kintro/shader_minified.h
2024-06-01 17:09:23 +03:00

211 lines
5.0 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_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.x<abs(.001*r))"
"{"
"x=1.;"
"break;"
"}"
"}"
"if(r>80.)"
"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.x<abs(.001*r))"
"{"
"x=1.;"
"break;"
"}"
"}"
"if(r>40.)"
"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_