Oct. 30th, 2023

liam_on_linux: (Default)
There used to be multiple ways to try to smooth out text on screen. Most are no longer relevant.

XP used several such methods quite heavily, such as font antialiasing and hinting.

1. Font antialiasing: using grey pixels that are not 100% on/off to soften the edges of screen fonts on portions of letters that are not vertical or horizontal, and therefore are stepped ("aliased"). First OS to do this was Acorn RISC OS in the 1980s. By the mid-1990s Windows started to catch up using greyscale pixels.

2. Subpixel allocation (used heavily in Windows in the 20x0s). This takes advantage of knowledge of the display screen type, acquired through more sophisticated (that is, bigger and slower) display systems. Pixels are not 1 colour dot. They are a group of a red dot, a green dot, and a blue dot, working together.

CRT displays used triangular or other shaped grids of R/G/B pixels. Sony Trinitron CRTs used stripes of R/G/B pixels because their [shadow mask](https://en.wikipedia.org/wiki/Shadow_mask) was a grille not a grid of holes. The then-new active matrix colour LCDs have R/G/B pixels turned on and off individually (that's what "active matrix" means, 1 transistor per pixel, as opposed to 1 transistor per rows and 1 per column, where the intersection goes on or off).

Subpixel allocation is antialiasing using R, G and B pixels where the arrangement of the individual colour pixels is known to the renderer. It is colour antialiasing but it doesn't work right if, for example, the pixels are:

`R B G`

But the renderer thinks they are

`B R G`

3. Running displays at non-native resolutions used to break this. CRTs do not have a single fixed native res. LCDs all do. Standard definition (SD) LCDs have, for example, 1024×768 pixels, or 1280×1024. Later, hi-def (HD) ones have more than you can easily see, e.g. my iMac's 2nd screen is 2560×1440 pixels on a 27" LCD. You'd often run this at 1.5× or so zoom

Now, HiDPI displays have way more than even that. My iMac's built in screen is 27" but 5120×2880.

You can't use a HiDPI ("retina") screen at its native res: letters would be too small to see. They always run at 2× or 2.5× or even weird ratios like 3.33×.

There is no longer a linear relationship between pixels the display has and pixels you see, because they're too small to see any more. So it's OK to have a resolution that means 6 pixels per dot in places and 7 in others because you can't see individual pixels except with a [hand lens](https://extension.psu.edu/a-brief-guide-to-hand-lenses) so you don't see fringing and aliasing.

It is meaningful to talk about having no subpixel smoothing or hinting on an SD screen where you can see pixels, but it's all more or less gone away now, because it's all programmatically curves on pixel-oriented displays where there are no visible pixels any more.

Ever since the iPhone 6 series, AFAIK, iOS devices *never* run at 1:1  native res _or_ 1:x ratios. The actual display res is almost unrelated to the lower res the OS runs the screen at and there's never a linear relationship between logical display pixels and actual hardware screen dots.

So the 1990s stuff about antialiasing has gone away now. At a microscopic scale it's all blurred out but the blurring is at such a small scale the human eye can't see it. So the OS UI options to turn on greyscale antialiasing or RGB subpixel allocation have gone away.

July 2025

S M T W T F S
  1234 5
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 12th, 2025 10:05 pm
Powered by Dreamwidth Studios