开发者

How can I alphablend only certain parts of a texture in DX 9?

How can I alphablend only certain parts of a texture in DX 9?

For example, layers in Photoshop (or any other photo editing program开发者_JAVA技巧 that supports layers).

You can draw something in a layer (background filled with alpha), then place the layer over the original image (draw the texture on the screen) which leads to the original image + ONLY the things I drew in the layer.

Yes, I know my english is not very "shiny".

Thank you very much, in advance!

P.S. The background of my texture IS filled with alpha.


So you have setup the alpha on the texture you wish to overlay such that 0 is transparent (ie shows whats underneath) and 1 is opaque (ie shows the overlay texture)?

If so then you just need to set up a a simple blend mode:

pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );

Make sure you draw the background first! Also note that values between 0 and 1 represent a linear interpolation between background and the overlay texture.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜