I'm not so sure this is the problem here. I'm not going to pretend to understand the conversation you guys are having in that thread, but the above tests were done with Consolas. Maybe it has good font hinting, maybe it doesn't... all I know is if I use other rendering packages I'm able to easily disable the anti-aliasing effect.
Here's a simple WinForms example:
- Create a new WinForms project.
- Set your Form's font to Consolas, 18pt.
- Add this into your form's code...
protected override void OnPaint(PaintEventArgs e)
Rectangle bounds = this.ClientRectangle;
Graphics g = e.Graphics;
//g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
g.DrawString("This is a test!", this.Font, Brushes.White, new PointF(8, 8));
Trying with and without the commented line has a visible effect, which is to enable/disable the smoothing. Perhaps the MonoGame content processor just needs to expose this functionality?
I did a lot of digging around for this and there was an old XNA tool, ttf2bmp, which effectively just did the above. It used the .NET Graphics object to just render each glyph for a font to a bitmap with the appropriate options, then generated a texture sheet with that result for XNA to use. I suspect BMFont does something similar to generate its texture.
Anyway, like I said, I have something that works for me and generates the desired result. I now have nice clean font edges which plays into the style I'm looking for. Here's a screenshot:
(NOTE: This is an 18pt font, I just zoomed it in using MSPaint. The shadow effect is added by a shader and not part of the actual font rendering.)
It'd be nice to have this out of the box with MonoGame, but it's not a big deal since getting it working was relatively straightforward. I'm not a huge fan of being reliant on an external tool to generate the font, but ah well