Следующая строка неверна:
pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
Возможно, вы намерены указать, что альфа-блендер должен выполнять ADD, но настройка D3DTSS_COLOROP не влияет на конечный блендер, вместо этого он устанавливает объединитель текстур. Вы устанавливаете это, чтобы добавить что-то (результат предыдущего / следующего этапа или что-то в этом роде) к цвету, который вы выбираете из текстуры, что неправильно. D3DTOP_SELECTARG1 или D3DTOP_MODULATE по умолчанию должны выполнять эту работу.
Вместо этого вам нужно написать:
pD3DDevice->SetRenderState(D3DBLENDOP, D3DBLENDOP_ADD);