Code for SweetFX:
float3 toFloat3(float4 input) { return float3(input.x, input.y, input.z); } float lowerCircle(float a) { return sqrt(a - pow(a, 2.0)); } float upperCircle(float a) { return 1.0 - sqrt(a - pow(a, 2.0)); } float4 bv2(float4 input) { float r, g, b; if(input.r < 0.5) r = lowerCircle(input.r); if(input.g < 0.5) g = lowerCircle(input.g); if(input.b < 0.5) b = lowerCircle(input.b); if(input.r > 0.5) r = upperCircle(input.r); if(input.g > 0.5) g = upperCircle(input.g); if(input.b > 0.5) b = upperCircle(input.b); if(input.r == 0.5) r = input.r; if(input.g == 0.5) g = input.g; if(input.b == 0.5) b = input.b; return float4(r, g, b, 1.0); } float3 CustomPass(float4 position : SV_Position, float2 texcoord : TEXCOORD0) : SV_Target { float3 colorInput = tex2D(s0, texcoord).rgb; return toFloat3(bv2(float4(colorInput, 1.0))); }