Lisää Petrin siivotun shaderin

FFT ohjaa hexojen korkeutta
Ylimääräiset tavarat siivottu random.frag tiedostoon
syncs[0] aika sekunteina
This commit is contained in:
2025-07-15 14:20:38 +03:00
parent 3fcd960c9c
commit cc6619f9a0
5 changed files with 1106 additions and 41 deletions

View File

@ -1,23 +1,153 @@
// Generated with Shader Minifier 1.5.1 (https://github.com/laurentlb/Shader_Minifier/)
#ifndef FRAGMENT_INL_
# define FRAGMENT_INL_
# define VAR_fft_output "l"
# define VAR_fft_output "m"
# define VAR_o "f"
# define VAR_syncs "v"
# define VAR_syncs "n"
const char *fragment_frag =
"#version 460\n"
"precision mediump float;"
"out vec4 f;"
"const float m=22./7.;"
"layout(location=0)uniform float v[7];"
"layout(location=8)uniform float l[1024];"
"float n=v[0];"
"const float i=2.*acos(-1.),v=sqrt(5.)*.5+.5;"
"layout(location=0)uniform float n[7];"
"layout(location=8)uniform float m[512];"
"float x=n[0];"
"vec2 t()"
"{"
"vec2 f=2.*((gl_FragCoord.xy+vec2(0)*.5)/vec2(1920,1080)-.5);"
"f.x*=1;"
"return f;"
"}"
"float t(vec2 f)"
"{"
"return fract(tan(x*.1*length(f*v-f))*f.x);"
"}"
"float t(vec3 v,vec2 f)"
"{"
"v=abs(v);"
"return max(v.y-f.y,max(v.x*sqrt(3.)*.5+v.z*.5,v.z)-f.x);"
"}"
"vec2 t(vec3 v)"
"{"
"float f=0.,i=1e9,r=0.;"
"vec3 x=v;"
"float e=0.;"
"for(float c=0.;c<15.;c++)"
"{"
"x=v+vec3(11.25,0,7.5)+vec3(0,0,2.08*c);"
"for(float v=0.;v<15.;v++)"
"{"
"x=mod(v,2.)==0.?"
"x-vec3(1.8,0,1):"
"x+vec3(-1.8,0,1);"
"float n=m[int(v+1)*int(c+1)]*5.;"
"r=t(x,vec2(.86,1.+n));"
"i=min(i,r);"
"if(i==r)"
"f=4.;"
"e+=1.;"
"}"
"}"
"return vec2(i,f);"
"}"
"vec3 t(vec3 v,vec3 f,inout vec3 i)"
"{"
"float x=0.,r=0.,y=0.;"
"for(int e=0;e<24;e++)"
"{"
"i=v+f*x;"
"vec2 n=t(i);"
"x+=n.x*1.2;"
"r=n.y;"
"if(x>60.)"
"break;"
"if(n.x<.001*x)"
"{"
"y=1.;"
"break;"
"}"
"}"
"if(x>60.)"
"x=0.;"
"return vec3(x,r,y);"
"}"
"float t(vec3 v,vec3 f)"
"{"
"float i=1.,x=.01;"
"for(int e=0;e<6;e++)"
"{"
"if(x>30.)"
"break;"
"float n=t(v+x*f).x;"
"i=min(i,n/(8.*x));"
"x+=clamp(n,.1,.8);"
"if(i<-1.)"
"break;"
"}"
"i=max(i,-1.);"
"return.25*(1.+i)*(1.+i)*(2.-i);"
"}"
"vec3 e(vec3 v)"
"{"
"vec2 f=vec2(.01,0);"
"return normalize(vec3(t(v+f.xyy).x-t(v-f.xyy).x,t(v+f.yxy).x-t(v-f.yxy).x,t(v+f.yyx).x-t(v-f.yyx).x));"
"}"
"vec3 e(vec3 v,vec3 f,float i,vec3 x,vec3 n,vec3 y)"
"{"
"vec3 r=normalize(x);"
"return f*mix(vec3(1)*vec3(max(0.,dot(r,y))),vec3(max(0.,dot(r,reflect(n,y)))),vec3(.4545)+(1.-vec3(.4545))*pow(clamp(1.-dot(normalize(r-n),r),0.,1.),5.))*t(x+y*.054,v);"
"}"
"vec3 e(vec3 v,vec3 f,vec3 i,float x)"
"{"
"float n=.1;"
"vec3 y=vec3(0);"
"if(x==0.)"
"y=vec3(.8314,.2941,.2941),n=.5;"
"else if(x==1.)"
"y=vec3(.6275,.1569,.9412),n=2.;"
"else if(x==2.)"
"y=vec3(.3255,.4784,.3255),n=.2;"
"else if(x==3.)"
"y=vec3(.2471,.3059,.6314),n=1.;"
"else if(x==4.)"
"y=vec3(.9961,1,.9922),n=.3;"
"else if(x==5.)"
"y=vec3(.9961,1,.9922),n=.3;"
"v=vec3(0)+e(vec3(-2,10,-5),vec3(.77,.26,.73),n,v,i,f)+e(vec3(20,10,-5),vec3(.08,.62,.75),n,v,i,f)+vec3(.1255)*clamp(dot(f,normalize(vec3(0,1,6)*vec3(0,-1,-1))),0.,1.);"
"return y*max(vec3(0),v);"
"}"
"vec3 e(vec2 f,vec3 v,vec3 x)"
"{"
"x=normalize(x-v);"
"vec3 n=cross(vec3(0,1,0),x);"
"return normalize(v+x+f.x*n+f.y*cross(x,n)-v);"
"}"
"vec3 t(vec2 v,vec3 x,vec3 f)"
"{"
"x=normalize(f-x);"
"vec3 n=normalize(cross(vec3(0,1,0),x)),y=normalize(cross(x,n));"
"vec2 i=vec2(t(gl_FragCoord.xy));"
"return normalize(v.x*n+v.y*y+1.7*x+(sqrt(i.x)*(n*sin(i.y*6.283)+y*cos(i.y*6.283))*.3-f)*1.7/50.);"
"}"
"vec3 e(vec2 v)"
"{"
"bool n=!true;"
"vec3 f=vec3(15,20,-20),x=f+vec3(cos(0.)*20.,5.+sin(0.)*2.,sin(0.)*20.),i=n?"
"t(v,x,f):"
"e(v,x,f),r=vec3(.102,.2431,.3412),y=vec3(0);"
"f=t(x,i,y);"
"if(f.z==1.)"
"{"
"vec3 v=e(y);"
"r=e(y,v,i,f.y);"
"}"
"return r;"
"}"
"void main()"
"{"
"vec2 m=gl_FragCoord.xy*2./vec2(1920,1080);"
"float n=clamp(l[clamp(int(floor(m.x*128.)),0,255)],0.,1.);"
"f=vec4(vec3(smoothstep(n,n+.02,1.-m.y)),1);"
"vec3 v=e(t());"
"f=vec4(v,1);"
"}";
#endif // FRAGMENT_INL_