- macOS uses no sub pixel hinting since High Sierra. Instead, it's just grayscale antialiasing. To make up for the unnatural thinness that occurs when grayscale antialiasing is used, fonts are artificially bolded by a small amount.
- Linux/FreeType uses very nice-looking sub pixel hinting and maintains the clarity of fonts pretty well. The spacing between characters may not be pixel-perfect, if I remember correctly.
- Windows/ClearType snaps fonts to the pixel grid very aggressively, resulting in some amount of distortion. Many of the default Windows fonts look really good with ClearType, while others appear strange, especially at smaller sizes. In terms of technology, ClearType is the most advanced.
Behdad has since axed usage of hints from True/OpenType fonts. Though the rationality of "more precise positioning" is kind of irrelevant on modern HiDPI screens.
I don’t know the timelines involved, but my impression was that macOS’s glyph dilation has been there from the start, or at the very least waaaaay before they threw away their subpixel antialiasing. (When you wrote “sub pixel hinting”, I’m presuming you actually meant subpixel antialiasing, though feel free to correct me; but hinting and antialiasing are entirely different things, and “subpixel hinting”, which I imagine would mean hinting to subpixel boundaries (which would also seem a weird thing to do), isn’t a standard term.)
Using greyscale antialiasing doesn’t inherently make things appear thinner or thicker. The only thing that will make things appear thinner or thicker is if the antialiasing is done in the wrong colour space, typically meaning linear versus gamma-corrected.
Yep, I think you're right about this. I can no longer edit my comment, but pretend I did a quick s/hinting/rendering/g.
> Using greyscale antialiasing doesn’t inherently make things appear thinner or thicker. The only thing that will make things appear thinner or thicker is if the antialiasing is done in the wrong colour space, typically meaning linear versus gamma-corrected.
Huh, thanks for the correction. Do you have any idea what the "Use font smoothing when available" setting actually does, given that it makes fonts thinner and more similar-looking to Windows rendering when turned off?
Bit of a crock calling it “font smoothing”, I reckon, but that’s what they call it there and I can’t stop them.
(In all this about macOS, I’m going almost entirely on what I’ve seen and heard from others. I’ve never had a Mac.)
That seems misleading, though, because there is clearly some amount of antialiasing happening regardless of which option is chosen.
I think you're probably right. To be honest, everything in macOS seems to be designed with that switch on, so turning it off makes fonts in many areas look noticeably worse.
Both macOS and Windows were designed at a time when screen resolutions were under 100dpi. My take is that Apple favored font rendering to mimic printed text as much as possible and Microsoft went with legibility at all costs with ClearType.
But to me, Windows font rendering is awful, of just terrible taste.
High resolution screens makes it all much less of an issue, but both Linux and Windows still struggle in that regard as well.
Whenever I sent Linux screenshots, my windows colleagues remarked how much better fonts looked in my screenshots.
Sub pixel rendering, which they all had (Likely a Windows default at the time?) sounds good but just looks blurry in practice.
It adds some funny color artifacts when the capture is not perfectly aligned to the screen because subpixel information is encoded as color variations.
On macOS there is little or no hinting, the result is less contrast and, at smaller text sizes on standard-resolution displays, eye strain; the upshot is that the shape of the fonts is generally more faithful, of course, macOS undermines this by completely changing the weight of fonts when you enable subpixel antialiasing (which is why there's CSS all over the internet turning that off).
On FreeType2 w/ Pango/Skia/etc (Linux/BSD/Android/iOS), the subpixel rendering actually works properly and doesn't change the weight of the font, and on the horizontal axis the hinting is mild or completely off, and the vertical hinting is less mild or quite aggressive. Most FreeType2-based renderers now position glyphs on thirds of a pixel, when the display can supports that. I personally prefer the default fontconfig on Arch Linux over every other text renderer.
Windows has ClearType, it is by far the sharpest text of the bunch, and at standard text sizes that can make it very legible. The tradeoff is that it completely mangles the shape of fonts, and the result only vaguely resembles it; furthermore there is such a thing as too much contrast and I find that ClearType can feel harsh and causes me a form of... aesthetic fatigue?
Overall it seems that there is a whole spectrum of ruthless efficiency vs. aesthetic considerations. I don't think there is a universal scientific answer to these questions.
Of course, once you have 3x standard resolution displays it doesn't much matter as long as you aren't mangling the fonts some other way, at some point you don't even need to antialias.