#define f3 float3
#define f4 float4
#define f2 float2
#define f0 float
#define ret return
static f0 t0=1,PI=3.141592;f3 ry(f3 v,f0 d){f0 r=d*(PI/180.0);ret f3(v.x*cos(r)+v.z*sin(r),v.y,-v.x*sin(r)+v.z*cos(r));}f3 rx(f3 v,f0 d){f0 r=d*(PI/180.0);ret f3(v.x,v.y*cos(r)-v.z*sin(r),v.y*sin(r)+v.z*cos(r));}f0 sb(f3 p,f3 b){f3 d=abs(p)-b;ret min(max(d.x,max(d.y,d.z)),.0)+length(max(d,.0));}f0 cdm(f3 p){f0 re=0;p=rx(ry(p,t0*100+p.y),t0*100+p.x);re=sb(p,f3(.5,.5,.5));f0 ra=sb(p,f3(.4,.4,.6));ra=min(ra,sb(p,f3(.6,.4,.4)));ra=min(ra,sb(p,f3(.4,.6,.4)));re=max(re,ra*-1);ret re;}f4 rm(f2 uv){f4 cl=f4(1,0,0,1);f0 rd=0.0;for(int i=0; i < 50; i++){cl=f4(1,1,1,1);f0 dts=cdm(f3(-.04,-.07,-1.8)+normalize(cross(f3(1,0,0),f3(0,1,0))+f3(1,0,0)*uv.x+f3(0,1,0)*uv.y)*rd+.1);if (rd>10){break;}else if(dts<.001){cl=f4(1,0,1,1);break;}rd+=dts;}ret cl;}sampler2D scr;f4 main(f2 sc:TEXCOORD0):COLOR{t0=tex2D(scr,sc.xy).r*3;f4 c0=f4(1,1,1,1);f2 uv=f2((sc.x*2.0-1.0)/(9.0/16.0),sc.y*2.0-1.0);f0 fa=.2;f4 c1=f4(0,0,0,0);f0 sd=distance(f2(-.5,-.5)*-1,sc);if(fmod(sd+t0*.8,.1)<.06){c1=f4(.3,.3,.3,1);c1.a=c1.a * min((0.8-sd)*2.,1.);}c0=c1+rm(uv);fa=1-smoothstep(0,.6,distance(sc,f2(.5,.5)));fa*=max((sin(sc.y*1000)+1)/2,.9);c0*=fa;c0.a=1;ret c0;}