Sign in to follow this  
Hello Kitty

backbuffer=backbuffer * texture - blend modes

Recommended Posts

Hello Kitty    106
I am making a dx9 ao shader.



I have the ao greyscale image in a texture, and the rendered scene in the backbuffer.



What blendmodes (dx9 fixed function pipeline) would I need to multiply the ao texture against the backbuffer.



something like this : backbuffer=backbuffer*aotexture



I currently have the following, but it is not blending with the backbuffer.



gRender->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
gRender->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
gRender->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR);
gRender->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
gRender->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
gRender->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
gRender->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2 );
gRender->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );


Is it even possible to blend a texture with the existing backbuffer?





Thanks

Share this post


Link to post
Share on other sites
Adam_42    3629
The only blend operations supported are listed here. If you need anything else you'll need to render your scene to a render target, and then take that render target along with the AO texture as inputs to a shader that blends them in the way you want.

Share this post


Link to post
Share on other sites
Hodgman    51223
The first 3 lines of code you posted do set up the correct blend mode, i.e.
result = src*0 + dest * source
or
result = dest * source

The next 5 lines of code seem to be telling the FFP to multiply your AO texture with the vertex diffuse colour -- do you need to do this as well?

What do you mean by "it is not blending with the backbuffer"? Do you end up with the backbuffer, the ao-buffer, just a black screen, etc?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this