You are rendering two passes, one without depth and one with depth. By disabling depth in the first pass you should be drawing nothing at the position of your sphere. Try merging both of the passes like this:
...
PS_OUT PixelShaderFunction(PSInput PS)
{
PS_OUT psout;
// Get TexCoord
float2 position = PS.TexCoord;
float timer = gTime;
// correction
position.xy = position.yx;
float3 lineColor1 = float3( 2.3, 0.5, .5 );
float3 lineColor2 = float3( 0.3, 0.5, 2.5 );
// main effect
float3 finalColor = float3(0,0,0);
float t = sin( timer ) * 0.5 + 0.5;
float pulse = lerp( 0.10, 0.20, t);
finalColor += drawLines( position, float3( 1.0, 20.0, 30.0), lineColor1, lineColor2, timer ) * pulse;
finalColor += drawLines( position, float3( 1.0, 2.0, 4.0), lineColor1, lineColor2, timer );
psout.color = float4(finalColor.rgb,1);
psout.depth = 0;
return psout;
}
//------------------------------------------------------------------------------------------
// Techniques
//------------------------------------------------------------------------------------------
technique energyField
{
pass P0
{
ZEnable = false;
VertexShader = compile vs_3_0 VertexShaderFunction();
PixelShader = compile ps_3_0 PixelShaderFunction();
}
}
...