Subpixel rendered text

Subpixel rendering is a technique used to smoothen the shape of an object, it's mostly used on monochrome text. Today many projects, particularly web browsers, will enforce this rendering technique for text, and it has even been mostly mandatory on Windows, where it is called ClearType, despite Microsoft actually acknowledging that it is a bad idea to make it mandatory.

Subpixel rendering entails rendering the shape not on the pixel level, that is chosing how bright the pixel shall be by how much the of the pixel the shape covers, but instead doing this on the subpixel level (on the colour channels), then you blur it a bit, or redistribute the energy, to remove colour fringing, This bluring is very faint, and not at all like Gaussian blurring, so the text isn't usually perceived as blurry (unless you combine it with GNOME's new feature the text is intentionally blurry because think that is the correct why to render text: without hinting).

Subpixel rendering does however have some major drawbacks, that are more pronounces to less pixel density you have. First of, by the very nature of this technique, it requires that the monitor uses pixels and colours the way a LCD monitor. It is not compatible at all with displays that does not have colours, and it produces bad results on CRT monitors which actually naturally smoothens the text.

The second issue is that the text most be rendered specifically for the subpixel layout that your monitor uses - and adjust according to the monitors orientation. The rendering engine must not assume the standard horizontal red–green–blue layout even if that is what the monitor is reporting, but must also detect if the monitor is rotated and adjust accordingly. If the subpixel rendering is done for the wrong layout, the result will look terrible.

The third issue that follows is that it cannot be used on every monitor that wods as an LCD monitor. For example, if the monitor's subpixel layout is a 2-by-2 grid, where the upper row is red–green and the lower row is green–blue (if there are to not directly connected subpixels with the same colour) the rendering engine must have direct control of each subpixel even being able to set different brightness on subpixels with the same colour belonging to the same pixel, and this is most likely something it simply cannot do.

A fourth issue that also follows from the second is that the rendering must be done specifically for the display the text is being display on, so if you have two monitors with different layout (for example two identical montors, but with is rotated and the other is not), the rendering must account for this.

Yet another issue that follows is that screenshots of the text may look bad if viewed on another display.

Also, zooming in on the text will look terrible.

Those are the 7 technical issues, some can be overcome, others cannot. Then there are viewer-dependent issues. The rendering must be tuned for the viewer for the result to look as good as possible and not being a distracted. This is because people are different sensitivity to colour discrepancies and shape discrepancies. Subpixel rendering assumes that the reader much more sensitive to shape discrepancies than colour discrepancies, and this is absolutely not always the case.

There are two major issues with subpixel rendering that plaque people that are sensitive to colour discrepancies. The first and most common issue is that the black or white text appears to be littered with colourful dots: it looks like someone has put glitter on it — this can actually cause the user headache or fatigue. The other issue, is that an entire letter or more commonly an entire word has the entirely wrong colour. Commonly it may look dark purple instead of black.