I'm trying to understand something. In Cg or HLSL the Lerp function does not clamp the parameter value used to interpolate, so when the alpha value is 0.0 the result will be surprising. When alpha is zero: a = 0.0 * 2 x = lerp( B, G, a ) // x = B a -= 1 // a = -1 x = lerp( x, R, a ) // This is x*(1-a) + R*a // x is now 2*B…