float3 CalculateBezier(float3 t, float y1, float y2)
{
float3 u = 1.0f - t;
float3 tt = t * t;
float3 uu = u * u;
float3 ttt = tt * t;
float3 uut3 = 3 * uu * t;
float3 ttu3 = 3 * tt * u;
float3 p = uut3 * y1;
p += ttu3 * y2;
p += ttt;
return p;
}
float3 CustomPass(float4 position : SV_Position, float2 texcoord : TEXCOORD0) : SV_Target
{
float3 colorInput = tex2D(s0, texcoord).rgb;
return CalculateBezier(pow(abs(colorInput + 0.05), 1.25), 0.25f, 0.75f);
}