About Alpha blending sprites in Direct3D9
- by ambrozija
I have a Direct3D9 application that is rendering ID3DXSprites. The problem I am experiencing is best described in this situation:
I have a texture that is totally opaque.
On top of it I draw a rectangle filled with solid color and alpha of 128.
On top of the rectangle I have a text that is totally opaque.
I draw all of this and get the resulting image through GetRenderTarget call.
The problem is that on the resulting image, on the area where the transparent rectangle is, I have semi transparent pixels. It is not a problem that the rectangle is transparent, the problem is that the resulting image is.
The question is how to setup the blending so in this situation I don't get the transparent pixels in the resulting image?
I use the sprite with D3DXSPRITE_ALPHABLEND which sets the device state to D3DBLEND_SRCALPHA and D3DBLEND_INVSRCALPHA. I tried couple of combinations of SetRenderState, like D3DBLEND_SRCALPHA, D3DBLEND_DESTALPHA etc., but couldn't make it work.
Thanks.