To answer the question. Sorry no, but I have been corrupted, let me explain.
The human eye is logarithmic. To perceive something as twice as bright we need to square the amount of light coming into our eyes. The same goes for sound.
Yet the RGB values of the screen are linear RGB 128,128,128 is twice as bright as 64,64,64. It has to be linear or our shading algorithms would not work. The fall of would be too quick.
Well no our calculations are wrong but the people who manufacture our screens know this and correct it as best they can..
Rather than me explaining watch this Youtube Computer Color is Broken
So to get the correct mix you need to create the correct mix between the two renders.There is not blend state to solve this so you will have to create a custom pixel shader to do the job. output.color = sqrt( pow ( input1.color , 2 ) + pow ( input2.color , 2) );
It is very subtle, but change the two light source's colours and then switch between linear and logarithmic blending and you will wonder how you ever put up with the broken rendering output in the first place.
I do all rendering and lighting calculations as photon counts, squaring input colours and square rooting output colours.
What about alpha? yep? i am not sure.