Процессор шрифтов XNA sprite использует сжатие DXT3, которое плохо работает с новым предварительно умноженным альфа-каналом в XNA 4.0. Отсюда блочный вид текста.
Процессор шрифтов Nuclex sprite выводит точно такие же данные, за исключением того, что внутреннее содержимоеTexture2D
, содержащее данные растрового изображения шрифта, не сжимается, поэтому у него нет проблем с качеством.
Поскольку данные с процессора Nuclex имеют одинаковый формат, программа SpriteFont
чтения XNA может их прочитать, и вам не нужно включать какие-либо библиотеки Nuclex для распространения в вашей игре.
(Это также удобно позволяет использовать тот же формат XML, что и определения родных спрайтов XNA.)
При этом нет ничего плохого в том, чтобы связать внешние библиотеки с вашей игрой. Это не так, как они установлены в вашей системе или что-то еще. (Вы могли бы даже пойти так далеко, чтобы объединить две сборки).
И то же самое относится и к коду (например, если вы беспокоитесь о контроле версий). Вы можете просто вставить Nuclex.Fonts.Content.TrueTypeImporter.dll
свой исходный код. Это на самом деле не имеет большого значения.