In my experience, hinting is becoming increasingly obsolete because most engines will create it on the spot if missing and there's more and more situations where TTF engines will completely ignore it, for example ClearType.
That's why when I wanted to have a font that is hinted perfectly for one given size, I in the end had to resolve to baking the hinting distortions into the glyph outlines itself.
Here's my blog post where I explain the problem and my brute force solution a bit more. And you can download the font to see how distorted glyphs optimized for 16px will look at other sizes.
That said, the font editor that I used also automatically runs ttfautohint, so it really is the default tool to get the job done.
But one thing that I'm not sure you're aware of - is that you can get very good results without resorting to this.
The trick is basically to get Freetype to render the glyph with hinting enabled, but at increased horizontal resolution (eg 4x is enough). By stretching the glyph horizontally, you basically get rid of the vertical hinting. Because you're rendering for LCD sub-pixel display, you triple the 4x again, so you actually render horizontally at say 3*4 = 12x pixel width. This wipes out the effect of hinting horizontally, but preserves the vertical hinting, which gives you the best of both worlds. You get crisp horizontal edges, and the ability to place glyphs with sub-pixel precision on the X axis. Of course for mono-spaced fonts this doesn't matter, and for maximum crispness, you might as well just render LCD sub-pixel glyphs with full hinting, which gives results that looks similar to the example at the top of your page.
My goal was the other direction: I wanted to force my font to look pixel-perfect after it had been hinted by Windows integrated GDI ClearType renderer. But because I couldn't easily automate that one, I used Freetype to simulate it.
IIRC, one limitation of this is that the fonts will look like garbage when font-smoothing is disabled (e.g. all kinds of ugly artifacts and too-thick lines).
I can't think of any other rasterizer than Freetype that has the option to enable hinting and then disable anti-aliasing. I've never tried that combination, what would be the point of that?
Hinting was originally created for fonts that had zero anti-aliasing. On Windows, prior to Cleartype, all fonts were rendered in binary, so it was even more important to have hinting there (eg so that the two stems of an 'H' are equal width, or the distance between the two symmetrical parts of an 'm' are equal size).
As screen resolutions rise, the need for hinting diminishes. On a 4K desktop monitor you still benefit from hinting. I think 8K desktop monitor resolution (at say 28 inch size) is probably where hinting loses relevance.
> On a 4K desktop monitor you still benefit from hinting.
I don’t have a 4K desktop monitor but I was curious to see if it does anything with larger fonts. Trying it out with Open Sans and it does still give an increase in contrast on a 34px title font sample, but not as significant as on the smaller body text: https://cdn.knightlab.com/libs/juxtapose/latest/embed/index....
Yes indeed. Sub-pixel RGB antialiasing gives you almost 3x resolution on the X coordinate, so hinting the vertical stems is not so noticeable. But because there's no sub-pixel antialiasing on the Y coordinates, the horizontal stems still benefit visibly from hinting.
On higher resolution screens, subpixel antialiasing loses relevance. Also, on the screen I'm writing, RGB subpixel antialiasing would increase the vertical resolution because the screen is rotated.
Truetype has had an autohinter for quite some time. I'm not sure if that is the same as this. By the fact it was posted today I thought it would be referring to something new, so I read the title as "tensorflow auto hint". Now this makes me wonder if you could train a model on fonts that have manual hinting and generate a more perfect auto-hinting program from it.
The original FreeType autohinter was implemented as a way to avoid the (now expired) patent covering interpreting the TTF hinting bytecode. This one refers to using the FontForge bytecode debugger so it's a newer development.
That's why when I wanted to have a font that is hinted perfectly for one given size, I in the end had to resolve to baking the hinting distortions into the glyph outlines itself.
Here's my blog post where I explain the problem and my brute force solution a bit more. And you can download the font to see how distorted glyphs optimized for 16px will look at other sizes.
That said, the font editor that I used also automatically runs ttfautohint, so it really is the default tool to get the job done.
https://hajo.me/blog/2021/07/24/making-a-font-that-doesnt-su...
https://news.ycombinator.com/item?id=27943156