Most visual effects have source and destination blend modes:
Both blends use inverse source alpha(Obsolete): Source blend factor is (1 - Aₛ, 1 - Aₛ, 1 - Aₛ, 1 - Aₛ), and destination blend factor is (Aₛ, Aₛ, Aₛ, Aₛ); the destination blend selection is overridden. This blend mode is supported only for the D3DRS_SRCBLEND render state.Constant blend factor: Constant color blending factor used by the frame-buffer blender. This blend mode is supported only if D3DPBLENDCAPS_BLENDFACTOR is set in the SrcBlendCaps or DestBlendCaps members of D3DCAPS9.Destination alpha: Blend factor is (Ad Ad Ad Ad). May cause rendering issues with sky.Destination color: Blend factor is (Rd, Gd, Bd, Ad).Inverse destination alpha: Blend factor is (1 - Ad 1 - Ad 1 - Ad 1 - Ad).Inverse destination color: Blend factor is (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad).Inverse source alpha: Blend factor is ( 1 - Aₛ, 1 - Aₛ, 1 - Aₛ, 1 - Aₛ).Inverse source color: Blend factor is (1 - Rₛ, 1 - Gₛ, 1 - Bₛ, 1 - Aₛ).Inverted constant blend factor: Inverted constant color-blending factor used by the frame-buffer blender. This blend mode is supported only if the D3DPBLENDCAPS_BLENDFACTOR bit is set in the SrcBlendCaps or DestBlendCaps members of D3DCAPS9.min(source alpha, 1 - destination alpha): Blend factor is (f, f, f, 1); where f = min(Aₛ, 1 - Ad).Obsolete: you can achieve the same effect by setting the source and destination blend factors toSource alphaandInverse source alphain separate calls.One: Blend factor is (1, 1, 1, 1).Source alpha: Blend factor is (Aₛ, Aₛ, Aₛ, Aₛ).Source color: Blend factor is (Rₛ, Gₛ, Bₛ, Aₛ).Zero: Blend factor is (0, 0, 0, 0).
Notes:
- As, Rs, Gs, Bs are the ARGB components of the source image.
- Ad, Rd, Gd, Bd are the ARGB components of the destination image.
- SourceBlend seems to be always D3DBLEND_SRCALPHA, no matter the value you set.
- Undernlined blend modes are probably the most useful ones
Source:
from Freshlook:
This is the relationship between the blend modes of visual effects and the D3DBLEND enumeration:
Zero D3DBLEND_ZERO One D3DBLEND_ONE Source color D3DBLEND_SRCCOLOR Inverse source color D3DBLEND_INVSRCCOLOR Source alpha D3DBLEND_SRCALPHA Inverse source alpha D3DBLEND_INVSRCALPHA Destination alpha D3DBLEND_DESTALPHA Inverse destination alpha D3DBLEND_INVDESTALPHA Destination color D3DBLEND_DESTCOLOR Inverse destination color D3DBLEND_INVDESTCOLOR min(source alpha, 1 - destination alpha) D3DBLEND_SRCALPHASAT Obsolete D3DBLEND_BOTHSRCALPHA Both blends use inverse source alpha D3DBLEND_BOTHINVSRCALPHA Constant blend factor D3DBLEND_BLENDFACTOR Inverted constant blend factor D3DBLEND_INVBLENDFACTOR NWN2_BLEND_FORCE_DWORD D3DBLEND_FORCE_DWORDBy looking at https://docs.microsoft.com/en-us/windows/win32/direct3d9/d3dblend you can understand the meaning of each blend mode.
SourceBlend seems to be always D3DBLEND_SRCALPHA, no matter the value you set.