ENB uses actual DirectX effects and therefore offers more options, but is also slower. SweetFX is basically analyzing a frame, creates a screenshot of the frame that has desired effects applied, and displays it instead of the unedited frame. It offers less options (no DoF etc.) but is faster. ReShade is a different thing. I think it works similar to ENB, but I'm not sure.