Direct3D рендеринг 2D-изображений с «умножением» режима наложения и альфа

Я пытаюсь повторить фильтр Photoshop умножить с Direct3D. Я'я читал и гуглял о различных состояниях рендера и яу нас эффект почти работает. Проблема в том, что этоs игнорирование альфа-значения текстур.

Вот'Изображение, которое объясняет ситуацию:

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

Я нашел одно решение, которое состояло в том, чтобы сохранить изображения без прозрачности и белого фона. Но я'Я не удовлетворен этим решением. Проблема в том, что мне действительно нужно использовать альфа-значение. Я хочу постепенно исчезать изображения. И я не могу сделать это, если режим смешивания игнорирует альфа-значение.

Итак, вопрос в том, как визуализировать изображения с альфа-каналом?

Вот's код режима наложения:

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

Изменить добавил 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);

Ответы на вопрос(4)

Ваш ответ на вопрос