struct PS_INPUT { float2 center: TEXCOORD0; float radius :TEXCOORD1; float4 color :TEXCOORD2; float2 screenPos : VPOS; }; struct PS_OUTPUT { float4 color: COLOR0; }; /////////////////////////////////////////////////////////////////////////////// sampler tex0: register(s0); /////////////////////////////////////////////////////////////////////////////// // Pixelshader // Profile: 3x0 PS_OUTPUT main(PS_INPUT input) { float2 targetResolution = 128.0; PS_OUTPUT output; float2 screen = input.screenPos / targetResolution; screen *= float2(2, 2); screen -= float2(1, 1); screen.y *= -1; float d = 1.0 - saturate(length(input.center - screen) / input.radius); output.color = float4(d, d, d, 0.05); //output.color = float4(screen.x, 0, 0, 1); return output; } ///////////////////////////////////////////////////////////////////////////////