I am currently having a problem understanding XNA 4.0's blend states. After a few hours of experimenting and playing around, trying to achieve additive blending (using BlendState.Additive) on a polygon rendered using an Effect, I came to realize XNA 4.0 now uses pre-multiplied alpha.
After reading various websites, I found the solution to my problem, and have now got additive blending working properly :
I am now trying to get the alpha to saturate whilst retaining the same colour : essentially additive alpha, and constant/replace colour. I tried using BlendFunction.Max, but for some reason, it does not seem to do anything at all.
In other words, by layering an alpha of 0.5 with an alpha of 0.5, I should be getting a final value of 1.0, which I then want to use as the alpha for my final colour : the new colour should fully replace the previous fragment (opaque).
I would have thought that this would have achieved the effect :
Unfortunately, nothing happens at all. Basically, the effect I am trying to achieve is painting with alpha (to saturation/ additive), and replace/splat the colour. Instead I get this (notice the darker lines between the two green blobs when in fact they should be brighter)