124 lines
3.1 KiB
C
124 lines
3.1 KiB
C
/* File generated with Shader Minifier 1.0.3
|
|
* http://www.ctrl-alt-test.fr
|
|
*/
|
|
#ifndef MARK_3_H_
|
|
# define MARK_3_H_
|
|
|
|
const char *mark_h_3 = ""
|
|
"varying vec4 Y,Z;"
|
|
"float j,k,g=acos(-1.),h=sqrt(.75);"
|
|
"vec2 r(vec2 v,float y)"
|
|
"{"
|
|
"return cos(y)*v+sin(y)*vec2(-v.y,v.x);"
|
|
"}"
|
|
"void s(inout vec2 v,float x,float y)"
|
|
"{"
|
|
"float z=mod(atan(v.y,v.x),y)-y*.5;"
|
|
"v=length(v)*vec2(cos(z),sin(z));"
|
|
"v.x-=x;"
|
|
"}"
|
|
"float l(vec3 p,float f)"
|
|
"{"
|
|
"return length(vec2(length(p.xz)-f,p.y));"
|
|
"}"
|
|
"float i(vec2 p,float y,float z)"
|
|
"{"
|
|
"return length(max(abs(p)-vec2(y)+vec2(z),0.))-z;"
|
|
"}"
|
|
"float u(vec3 p)"
|
|
"{"
|
|
"return fract(sin(p.x*151.+p.y*33.+p.z)*11.);"
|
|
"}"
|
|
"float w(vec3 p)"
|
|
"{"
|
|
"vec2 e=vec2(1.,0.);"
|
|
"vec3 o=smoothstep(0.,1.,fract(p));"
|
|
"p=floor(p);"
|
|
"vec4 n=mix(vec4(u(p+e.yyy),u(p+e.xyy),u(p+e.yxy),u(p+e.xxy)),vec4(u(p+e.yyx),u(p+e.xyx),u(p+e.yxx),u(p+e.xxx)),o.z);"
|
|
"e=mix(n.xy,n.zw,o.y);"
|
|
"return mix(e.x,e.y,o.x);"
|
|
"}"
|
|
"float A(vec3 p)"
|
|
"{"
|
|
"return 99.;"
|
|
"}"
|
|
"float B(vec3 p)"
|
|
"{"
|
|
"return p.y+=cos(p.x*.3+cos(p.z*.3)+j*4.)*cos(p.z*.1+cos(p.x*.2))+8.,p.xz=r(p.xz,j*22.),p.z=mod(p.z,3.)-1.5,i(p.yz,1.,.25);"
|
|
"}"
|
|
"float C(vec3 p)"
|
|
"{"
|
|
"return p.y+=cos(p.x*.3+cos(p.z*.3)+j*4.)*cos(p.z*.1+cos(p.x*.2)),p.xz=r(p.xz,j*11.),p.z=mod(p.z,3.)-1.5,i(p.yz,.5,.25);"
|
|
"}"
|
|
"float D(vec3 p)"
|
|
"{"
|
|
"return length(p+vec3(-11.,-16.,-22.))-Y.z*33.-12.;"
|
|
"}"
|
|
"float f(vec3 p)"
|
|
"{"
|
|
"float z=min(min(A(p),B(p)),C(p));"
|
|
"return max(length(p)-66.,min(z,max(.5-z,D(p))));"
|
|
"}"
|
|
"void main()"
|
|
"{"
|
|
"k=Y.x;"
|
|
"j=Y.y;"
|
|
"vec3 q=vec3(Z.xy-.5,1.),p;"
|
|
"if(k==4.)"
|
|
"p=vec3(0.,-6.5+j*33.,5.),q.yz=r(q.yz,1.),q.xz=r(q.xz,2.);"
|
|
"else"
|
|
" if(k==5.)"
|
|
"p=vec3(11.,2.,22.-j*66.),q.xz=r(q.xz,4.-j*5.);"
|
|
"else"
|
|
" if(k==6.)"
|
|
"p=vec3(0.,7.-j*11.,j*-11.);"
|
|
"q=normalize(q);"
|
|
"vec3 b=vec3(0.,0.,0.);"
|
|
"float a=1.,t=w(q*666.)*.2,y,z,d,m=0;"
|
|
"while(m++<2.)"
|
|
"{"
|
|
"for(d=1.;t<66.&&d>t*.003;t+=max(.01,d+.01))"
|
|
"d=f(p+q*t);"
|
|
"if(t>66.)"
|
|
"{"
|
|
"break;"
|
|
"}"
|
|
"p+=q*t;"
|
|
"vec2 e=vec2(.04,0.);"
|
|
"vec3 n=vec3(f(p+e.xyy)-f(p-e.xyy),f(p+e.yxy)-f(p-e.yxy),f(p+e.yyx)-f(p-e.yyx));"
|
|
"n=normalize(n);"
|
|
"z=A(p);"
|
|
"vec3 c=vec3(.05,.1,.2);"
|
|
"d=.7;"
|
|
"if(z>D(p))"
|
|
"z=D(p),c=vec3(1.,0.,0.),d=.15;"
|
|
"if(z>B(p))"
|
|
"z=B(p),c=vec3(.6),d=.3;"
|
|
"if(z>C(p))"
|
|
"z=C(p),c=vec3(0.,.6,.8)*(.9-.15/clamp(dot(n,q),-1.,-.05)),d=.2,e.y=5.;"
|
|
"n+=(w(p*e.y)+w(p*e.y*2.)+w(p*e.y*4.))*e.x;"
|
|
"n=normalize(n);"
|
|
"q=reflect(q,n);"
|
|
"y=6.;"
|
|
"for(z=1.;y>0.;y--)"
|
|
"z-=(y*.5-f(p+n*y*.5))/exp2(y);"
|
|
"c*=z;"
|
|
"n.yz=r(n.yz,.6);"
|
|
"c*=.4+.3*(1.-abs(n.y-.9));"
|
|
"b+=a*c;"
|
|
"a*=d;"
|
|
"t=.3;"
|
|
"}"
|
|
"p=vec3(.8);"
|
|
"q.yz=r(q.yz,.6);"
|
|
"p+=q.y*.2;"
|
|
"if(m<2)"
|
|
"p*=vec3(.95,1.1,1.2);"
|
|
"if(q.y>0.)"
|
|
"s(q.xz,.4,g/8.),q.x=abs(q.x)-.2,p+=pow(smoothstep(.2,0.,mix(abs(q.z),length(q.xz),step(0.,q.x))),22.);"
|
|
"vec3 color=b+a*p;"
|
|
"gl_FragColor.xyz=length(color)*(cos((Z.y+color)*g*2)*.125+.5);"
|
|
"}";
|
|
|
|
#endif // MARK_3_H_
|