Direct3D renderizando imagens 2D com o modo de mesclagem “multiplicar” e alfa

Eu estou tentando replicar o filtro do Photoshop multiplicar com o Direct3D. Eu tenho lido e pesquisado sobre os diferentes estados de renderização e eu tenho o efeito quase funcionando. O problema é que ele está ignorando o valor alfa das texturas.

Aqui está uma imagem que explica a situação:

http://www.kloonigames.com/petri/stackoverflow_doesnt_allow_.jpg

Eu encontrei uma solução para isso, que era salvar as imagens sem transparência e fundo branco. Mas não estou satisfeito com esta solução. O problema é que eu realmente preciso usar o valor alfa. Eu quero desvanecer as imagens gradualmente. E não posso fazer isso se o modo de mesclagem estiver ignorando o valor alfa.

Então a questão é como renderizar as imagens com alfa?

Aqui está o código do modo de mesclagem:

dev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
dev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
dev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR);

Edit adicionou o SetTextureStageState

dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);

questionAnswers(4)

yourAnswerToTheQuestion