Nope, it won't darken the result - don't forget that you are blending 50 % of the second image with the "full" first image. The result is 50 % of the first + 50 % of the second, which gives "100 %".
If you have the proper blending operation:
device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);then the blending equation for each color channel is
result = color_on_screen * (1 - rendered_alpha) + rendered_color * rendered_alpha
and in our case
result = color_on_screen * (1 - 0.5) + rendered_color * 0.5
which is
result = color_on_screen * 0.5 + rendered_color * 0.5
Imagine you have two identical images. Let's take one example pixel with color RBG 250,100,50.
When you render the first quad, the pixel on the screen will be 250,100,50.
Now you render the second one and by the calculations you'll get 125+125, 50+50, 25+25 which is 250,100,50. Not darkened at all.
An important note: The first quad must be fully opaque, or you must disable blending before rendering it. If you did render also the first quad with 50 % alpha, it would blend with the empty backbuffer, which would probably be black (depends on how do you clear the buffer) and that WOULD darken the result.
OK, I feel stupid bringing this up again considering I said I understood what you were saying but I've tested this and I am getting a darker image.
From what you've wrote here you say that the image behind is fully opaque. However, it is missing the Red Channel so isn't it a little diferent. If we just look at the red channel in isolation then if the original pixel is 255. The back image would be 0, and the front image would be 255. So 0 * 0.5 + 255 * 0.5 = 127.5.
Or is this not the case?
Thanks
David