texture texTFFT; sampler1D texFFT = sampler_state { Texture = ; }; // towards 0.0 is bass / lower freq, towards 1.0 is higher / treble freq texture texFFTSmoothedT; sampler1D texFFTSmoothed = sampler_state { Texture = ; }; // this one has longer falloff and less harsh transients texture rawtexBricks; sampler2D texBricks = sampler_state { Texture = ; }; texture rawtexGrunge; sampler2D texGrunge = sampler_state { Texture = ; }; texture rawtexMono; sampler2D texMono = sampler_state { Texture = ; }; texture rawtexNoise; sampler2D texNoise = sampler_state { Texture = ; }; texture rawtexNormal; sampler2D texNormal = sampler_state { Texture = ; }; texture rawtexPaper; sampler2D texPaper = sampler_state { Texture = ; }; texture rawtexPooBrain; sampler2D texPooBrain = sampler_state { Texture = ; }; float fGlobalTime; // in seconds float2 v2Resolution; // viewport resolution (in pixels) #define t fGlobalTime #define W(p,a) cos(a)*p+sin(a)*float2(-p.y,p.x) #define X(a,b) a-floor(a*b/1.)*b float D(float3 p) { //p=X(p,10.)-5.; return abs(p)-.1; //return max(abs(p.x)-2.,length(p.yz)-.2); } float4 main( float2 TexCoord : TEXCOORD0 ) : COLOR0 { /* float2 v = TexCoord-.5; float4 c=0., cc={.3,.1,.5,1.}; float3 p={0.,0.,-5.}, r=normalize(float3(v*v2Resolution/v2Resolution.x,.5)), l={-2.,-3.,1.}, q=p; float d=0., f=0., w=99.; int i=0; //WRONG LAYOUT! < > do { i++; p+=r*d*.5; float d=D(p); if(d<.001) { p+=r*d; float2 u={.001,0.}; float3 n=float3(D(p+u.xyy),D(p+u.yxy),D(p+u.yyx))-D(p); float h=dot(n,l), s=pow(dot(n,normalize(q-p+l)),99.); // c=cc*h+s; return cc*h+s; } //}while(length(q-p)