Hacker News new | ask | show | jobs
by sayusyz 2515 days ago
Great detailed pictures. I'm curious where general hinting belongs.
1 comments

"Hinting" is a combination of techniques. Subpixel placement hinting is done by the shaper, which would be HarfBuzz in this case. Metrics hinting (adjusting the glyph width) is done by a combination of the shaper and the renderer, which would be HarfBuzz and FreeType. Outline hinting (fitting outline to the grid by distoring shapes without) is done by FreeType.

Behdad Esfahboh, the author of HarfBuzz, has a great paper on the different choices and tradeoffs here: https://docs.google.com/document/d/1wpzgGMqXgit6FBVaO76epnnF...

Now that very high dpi screens are so popular and inexpensive, is subpixel rendering worth doing anymore?
It's important to make the distinction between subpixel positioning and subpixel (RGB) rendering. I'd personally say yes to the former, even at high dpi, and no to the latter if you're on a mobile device. The kerning errors you get from quantizing the position of glyphs to integer pixels are, to my eyes, a noticeable degradation of quality.
Do you know if the layout engines for laser printers do subpixel stuff?
Most laser printers tend to use PostScript (a Turing complete language), which does not know about displays hardly at all. It does arbitrary positioning.
> It does arbitrary positioning.

So are you saying that whether or not subpixel effects are accounted for is implementation dependent?

I don’t know the details, but on my 4K screen different applications font rendering looks very has a very noticeable difference in quality. Eg IntelliJ looks great, and afaik uses some form of subpixel Rendering. Where’s VS Code looks kind of crappy since the update to macOS Mojave, which as far as I understood changed font rendering
Yeah, at distances people actually view displays at, there is still a benefit to subpixel rendering and some amount of hinting, even on "retina" displays.

Far as I'm concerned, high res displays help hinting do less damage, but they don't render it obsolete.