/// Amplitude of Grating /// 0 /// 1 /// 1 float contrast : register(C1); /// Phase of Grating /// 0 /// 100 /// 100 float frequency: register(C2); /// Phase of Grating /// 0 /// 6.283184 /// 0 float phase: register(C3); /// Orientation of Grating /// 0 /// 6.283184 /// 0 float orientation: register(C4); /// Half bandwidth of envelope /// 2 /// 8 /// 4 float sigma : register(C5); /// Transparency of Figure /// 0 /// 1 /// 1 float alpha : register(C6); float rp(float2 uv) { const float2 Center = float2(0.5,0.5); float2 dir = uv - Center; // vector from center to pixel float dist = length(dir); //dir /= dist; return dist; } float4 main(float2 uv : TEXCOORD) : COLOR { float _r = rp(uv)*8; float env = exp( -(_r*_r) / (2.0) ) * alpha; float _x = sin(orientation)*uv[0]-cos(orientation)*uv[1]; float cl = 127.0/255.0+env*contrast*127.0/255.0*cos(frequency*_x + phase); if(_r>3.2) if(abs(cl-127.0/255.0)<0.005) cl=127.0/255.0; float l = cl; float4 color = float4(l,l,l,1.0); return color; }