shader things

This commit is contained in:
2025-07-15 23:05:45 +03:00
parent 3cba52f4ae
commit 5e431e5a85
5 changed files with 256 additions and 225 deletions

View File

@ -1,152 +1,151 @@
// Generated with Shader Minifier 1.5.1 (https://github.com/laurentlb/Shader_Minifier/)
#ifndef FRAGMENT_INL_
# define FRAGMENT_INL_
# define VAR_fft_output "m"
# define VAR_fft_output "n"
# define VAR_o "f"
# define VAR_syncs "n"
# define VAR_syncs "m"
const char *fragment_frag =
"#version 460\n"
"precision mediump float;"
"out vec4 f;"
"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)"
"layout(location=0)uniform float m[7];"
"layout(location=8)uniform float n[512];"
"float c=m[0];"
"float t(vec3 v,vec2 i)"
"{"
"v=abs(v);"
"return max(v.y-f.y,max(v.x*sqrt(3.)*.5+v.z*.5,v.z)-f.x);"
"return max(v.y-i.y,max(v.x*sqrt(3.)*.5+v.z*.5,v.z)-i.x);"
"}"
"float t(int v)"
"{"
"v=clamp(v,0,511);"
"float i=n[v];"
"return log(1.+i*15.);"
"}"
"vec2 t(vec3 v)"
"{"
"float f=0.,i=1e9,r=0.;"
"vec3 x=v;"
"float e=0.;"
"for(float c=0.;c<15.;c++)"
"float i=0.,f=1e9,m=0.;"
"vec2 n=vec2(7);"
"for(float r=0.;r<16.;r++)"
"{"
"x=v+vec3(11.25,0,7.5)+vec3(0,0,2.08*c);"
"for(float v=0.;v<15.;v++)"
"vec3 c=v+vec3(1.8*8,-5,-2.08*10)+vec3(0,0,2.08*r);"
"for(float v=0.;v<16.;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.;"
"c=mod(v,2.)==0.?"
"c-vec3(1.8,0,1):"
"c+vec3(-1.8,0,1);"
"int y=int(length(vec2(v,r)-n.xy));"
"m=t(c,vec2(.86,1.+t(y)*2.));"
"f=min(f,m);"
"if(f==m)"
"i=1.;"
"}"
"}"
"return vec2(i,f);"
"return vec2(f,i);"
"}"
"vec3 t(vec3 v,vec3 f,inout vec3 i)"
"vec3 t(vec3 v,vec3 i,inout vec3 f)"
"{"
"float x=0.,r=0.,y=0.;"
"for(int e=0;e<24;e++)"
"float r=0.,m=0.,y=0.;"
"for(int c=0;c<30;c++)"
"{"
"i=v+f*x;"
"vec2 n=t(i);"
"x+=n.x*1.2;"
"r=n.y;"
"if(x>60.)"
"f=v+i*r;"
"vec2 n=t(f);"
"r+=n.x;"
"m=n.y;"
"if(r>1e2)"
"break;"
"if(n.x<.001*x)"
"if(n.x<.001*r)"
"{"
"y=1.;"
"break;"
"}"
"}"
"if(x>60.)"
"x=0.;"
"return vec3(x,r,y);"
"if(r>1e2)"
"r=0.;"
"return vec3(r,m,y);"
"}"
"float t(vec3 v,vec3 f)"
"float t(vec3 v,vec3 i,float y)"
"{"
"float i=1.,x=.01;"
"for(int e=0;e<6;e++)"
"float f=1.,r=.02;"
"for(int c=0;c<6;c++)"
"{"
"if(x>30.)"
"if(r>y)"
"break;"
"float n=t(v+x*f).x;"
"i=min(i,n/(8.*x));"
"x+=clamp(n,.1,.8);"
"if(i<-1.)"
"float m=t(v+r*i).x;"
"f=min(f,m/(4.*r));"
"r+=clamp(m,.1,.8);"
"if(f<-1.)"
"break;"
"}"
"i=max(i,-1.);"
"return.25*(1.+i)*(1.+i)*(2.-i);"
"f=max(f,-1.);"
"return.25*(1.+f)*(1.+f)*(2.-f);"
"}"
"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));"
"vec2 i=vec2(.01,0);"
"return normalize(vec3(t(v+i.xyy).x-t(v-i.xyy).x,t(v+i.yxy).x-t(v-i.yxy).x,t(v+i.yyx).x-t(v-i.yyx).x));"
"}"
"vec3 e(vec3 v,vec3 f,float i,vec3 x,vec3 n,vec3 y)"
"vec3 e(vec3 v,vec3 i,vec3 f,vec3 r,vec3 c,float m)"
"{"
"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);"
"v-=f;"
"float y=length(v);"
"v=normalize(v);"
"float n=3./(1.+.09*y+.032*y*y),p=max(dot(c,v),0.);"
"r=normalize(v-r);"
"vec3 e=vec3(.04);"
"e+=(1.-e)*pow(clamp(1.-max(dot(r,v),0.),0.,1.),5.);"
"y=t(f+c*.01,v,y);"
"return(i*p*n+i*pow(max(dot(c,r),0.),mix(128.,8.,m))*n*e)*y;"
"}"
"vec3 e(vec3 v,vec3 f,vec3 i,float x)"
"vec3 e(vec3 v,vec3 f,vec3 i,float y)"
"{"
"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);"
"float m=.01;"
"vec3 c=vec3(0);"
"if(y==0.)"
"c=vec3(.8314,.2941,.2941),m=.1;"
"else if(y==1.)"
"c=vec3(.6196,.6118,.6118),m=.7;"
"else if(y==2.)"
"c=vec3(.3255,.4784,.3255),m=.2;"
"else if(y==3.)"
"c=vec3(.2471,.3059,.6314),m=1.;"
"else if(y==4.)"
"c=vec3(.9961,1,.9922),m=.1;"
"else if(y==5.)"
"c=vec3(.9961,1,.9922),m=.3;"
"v=vec3(0)+e(vec3(-10,10,0),vec3(.77,.26,.73),v,i,f,m)+e(vec3(0,10,-5),vec3(.08,.62,.75),v,i,f,m)+e(vec3(0,25,0),vec3(.5137,.1961,.7725),v,i,f,m)+vec3(.08,.62,.75)*clamp(dot(f,normalize(vec3(0,1,-3)*vec3(0,-1,-2))),0.,1.)*.8;"
"return c*max(vec3(0),v);"
"}"
"vec3 e(vec2 f,vec3 v,vec3 x)"
"vec3 e(vec2 v,vec3 f)"
"{"
"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);"
"f=normalize(vec3(0,-1,10)-f);"
"vec3 m=normalize(cross(vec3(0,1,0),f));"
"return normalize(v.x*m+v.y*normalize(cross(f,m))+f);"
"}"
"vec3 t(vec2 v,vec3 x,vec3 f)"
"vec3 e()"
"{"
"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 f;"
"{"
"float v=c*.06;"
"f=vec3(sin(v)*15.,30.+cos(v*.5)*5.,cos(v)*15.);"
"}"
"return f;"
"}"
"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 f=e(v,e()),m=vec3(.102,.2431,.3412),y=vec3(0),i=t(e(),f,y);"
"if(i.x>0.)"
"{"
"vec3 v=e(y);"
"r=e(y,v,i,f.y);"
"m=e(y,v,f,i.y);"
"}"
"return r;"
"return m;"
"}"
"void main()"
"{"
"vec3 v=e(t());"
"vec3 v=e(gl_FragCoord.xy*vec2(.00104166667,.00185185185)-1.);"
"f=vec4(v,1);"
"}";