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:
@ -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_
|
||||
|
||||
Reference in New Issue
Block a user