There has been a discussion on the XNA forums regarding a slight decrease in the visual quality of SpriteFonts from XNA 3.1 to XNA 4.0: XNA 4.0 renders SpriteFont differently (and not for the better).
There are two changes that might have impacted visual quality: XNA 4.0 uses premultiplied
alpha everywhere (whereas XNA 3.1 processed the alpha channel as-is) and, as revealed by
"Krome Studios", The FontDescriptionProcessor
in XNA 4.0 generates
a texture with DXT3 (a form of compression that limits each block of 4×4 pixels to contain
only 4 different colors and reduces the alpha channel to 4 bits of precision or 16 levels,
see Wikipedia).
Because I’ve written a custom FontDescriptionProcessor for XNA 4.0 which outputs compatible
SpriteFont
s but uses FreeType instead of Windows’ GDI font
API, I decided to do a little comparison.