Direct3D renderiza imágenes 2D con modo de fusión "multiplicar" y alfa

Estoy tratando de replicar el filtro de Photoshop multiplicado con Direct3D. He estado leyendo y buscando en Google sobre los diferentes estados de renderizado y tengo el efecto casi funcionando. El problema es que está ignorando el valor alfa de las texturas.

Aquí hay una imagen que explica la situación:

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

Encontré una solución a esto, que era guardar las imágenes sin transparencia y fondo blanco. Pero no estoy satisfecho con esta solución. El problema es que realmente necesito usar el valor alfa. Quiero desvanecer las imágenes gradualmente. Y no puedo hacer esto si el modo de fusión ignora el valor alfa.

Entonces la pregunta es ¿cómo renderizar las imágenes con alfa?

Aquí está el código de modo de fusión:

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

Editar añadió el 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);

Respuestas a la pregunta(4)

Su respuesta a la pregunta