Resolution indpendence

Glynn Clements glynn at gclements.plus.com
Sat Jun 28 08:03:53 PDT 2008


Behdad Esfahbod wrote:

> > Using physical units (which includes point sizes) implies that a
> > monitor of a given size will display the same amount of content
> > regardless of the resolution.
> 
> Printing to a higher resolution printer, do you get more content?  It's
> the same eye looking at it.  Your eye sight doesn't improve by higher
> resolution!

Actually, with my current primary monitor (22", 1920x1440), I get
roughly the same amount of text that I would get on paper of the same
physical size. If I were to reduce the screen resolution, I would need
to use a physically larger font for legibility.

On my previous monitor, I use the same pixel size despite the lower
resolution (i.e. larger physical size). If I were to use the same
physical size, the lower resolution would mean that the text would be
illegible.

At lower resolutions, the number of samples (pixels) used for
rendering is the limiting factor. Too few pixels and the result is
either noise (jaggies) or a blur. As resolution increases, eventually
physical size (relative to the viewing distance) starts to be become
the limiting factor.

For a 300 dpi laser printer, it's physical size rather than pixel
resolution which is the limiting factor. For a 100 dpi monitor, it's
the pixel resolution. My current monitor equates to around ~125 dpi,
which is probably about the borderline; if the resolution was any
higher, I'd switch to a larger pixel size.

However, that's with a bitmap font. If I was using a scalable font, I
would need to use a significantly larger size to get the same degree
of legibility.

And I wouldn't use anti-aliasing. The visual system relies upon edge
detection, and blurring the edges reduces legibility. The place for
anti-aliased text is if you are viewing the page as "artwork" (rather
than trying to read it), where accurately representing the balance
between ink and paper is more important.

If you want to maximise legibility, you need to ensure that the text
is physically large enough (minimum point size) and that it has enough
samples (minimum pixel size). Regarding the latter, the minimum pixel
size needs to be substantially higher for scalable fonts than for
bitmap fonts.

A corollary of this is that the physical size corresponding to the
minimum pixel size will be lower for a bitmap font than for a scalable
font. Unless you have an exceptionally high resolution (200+ dpi), it
is likely to be substantially lower.

So, if you're trying to get as much information on screen as
practical, while at the same time maximising legibility, then the
optimum solution is likely to be the smallest bitmap font which
exceeds the minimum physical size determined by the user's eyesight
and the viewing distance.

Conversely, if you insist upon using a font with exact physical
dimensions, your only choice is to use scalable fonts. And unless the
user only ever uses 200+ dpi monitors, their only choice is to choose
a font which is unnecessarily large just so that it's legible on
lesser monitors.

So far, I've never owned a monitor whose resolution is so high that
the minimum legible size was determined by physical dimensions rather
than the pixel grid. My current monitor is probably close to the
threshold. Future monitors will likely exceed it, and for people with
poor eyesight, the threshold has already been crossed.

So, I can see why physical size is starting to become an issue. 
However, that doesn't mean that pixel size has stopped being an issue,
nor that it will cease to be an issue as soon as some people start
using 200 dpi monitors.

If you want *usable* resolution independence, it isn't going to be
obtained by an absolutist belief that physical units are the alpha and
omega. Nor will it be obtained by assuming that text can be considered
in isolation from other UI elements.

And handling the other UI elements is likely to be harder. With fonts
you at least have the advantage that you can typically obtain a
hand-tuned bitmap that's not too far from the desired size, while you
may not have this choice for icons. Rescaling images by a non-integral
scale factor is messy, and scalable (e.g. SVG) icons have all the same
issues as scalable fonts.

Once we reach a point where 300 dpi displays are the norm, you can
forget about the pixel grid altogether (especially when video
typically has 256 intensity levels per component, compared with 2 for
printers, so you don't need to worry about halftones or dithering).

But we're not there yet. While ignoring the pixel grid in favour of
physical size may make life much easier for programmers, it will
produce solutions which are not only substandard, but (for those of us
without 200 dpi monitors and not interested in DTP) actually worse
than the days where you ignored physical size in favour of pixels.

The tl;dr version: resolution independence is hard, and if you can't
get it right, don't take offence if some of us not only don't want a
half-arsed attempt, but won't accept that it's The Real Thing and that
we're just Luddites.

-- 
Glynn Clements <glynn at gclements.plus.com>



More information about the xorg mailing list