[Development] Font rendering on X11/Wayland: New FreeType API to toggle LCD filters and stem darkening on a per-font basis, would love a review

Allan Sandfeld Jensen kde at carewolf.com
Sat Nov 19 14:29:54 CET 2016


On Saturday 19 November 2016, Nikolaus Waxweiler wrote:
> >> Correct font rendering with linear alpha blending and gamma correction
> >> can make text look pale like reported in
> >> https://bugreports.qt.io/browse/QTBUG-41590 due to the way the math
> >> behind it works out. Stem darkening compensates for the paleness.
> > 
> > Any idea why exactly?
> 
> I'm not sure what you're asking. Do you mean why LAB+GC results in
> pale(r) text? The paleness is an expected side-effect of gamma
> correction on low-DPI screens.
> 
No I understand the math. I am just curious from a philosophical point of view 
how come stem darkening is even needed. Gamma-corrected blending might end up 
paler, but it should be a more correct result, so it just odd that it looks 
wrong and that a compensation is needed. Somewhere we must have done something 
that relied on naive blending. Maybe in the design of the fonts?

Also I notice in your example you also use a too low gamma value. The standard 
in screens in between 2.2 and 2.4, and when using that I generally see an 
inversion in the contrast balance.

Look at the attached example.  Ideally with correct blending text should look 
equally "bold" regardless of background and foreground color. It is obvious 
white on black with naive blending is too weak, but the color on white text 
with GC blending is just as weak, while white on black is now as bold as color 
on white used to be. If I used a gamma of 1.6 it would look more balanced, but 
my screen has a gamma of either 2.4 or sRGB , so why does using the right 
value give the an unbalanced result?

Anyway, on the API front. Forcing to autohinter is probably not acceptable. So 
we could enable stem darkening where native available, but then we need to 
know if what engine a face is using, or better yet specifically if the engine 
used right now on this face did stem darkening.

Best regards
`Allan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot_20161119_142046.png
Type: image/png
Size: 65570 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20161119/ff517ab9/attachment.png>


More information about the Development mailing list