On Wednesday 19 Oct 2011 14:27:02 Petr Gajdos wrote:
Hi List,
Jon suggests to change hintstyle property to 'hintslight' in /etc/fonts/suse-hinting.conf, however comment in the same file reads
<!-- Using hinting=true, hintstyle=hintfull and antialias=true is a good default for most fonts. ... -->
I think it is matter of taste and as such should be discussed here, so your comments and observations are welcome and any help with testing appreciated.
I think it's more than a matter of taste, I think there something fundamentally different in the current freetype2 package in openSUSE that makes most fonts look ugly (subjective, but please see my attached reference examples below) at *any* setting. This is not a trivial matter because a lack of crisps and clear font rendering by default is noticable to the first time user, and worse; it hinders productivity for those that don't know how/where to improve things. Quick background ---------------- Please correct me if I am wrong anywhere... Before May 2010 it was common to use third party repos for freetype because we couldn't ship freetype with sub pixel hinting enabled due to patent encumberance. After May 2010 the TrueType bytecode patents expired and we could ship freetype with sub pixel hinting enabled by default. The current package in Factory and now in RC1 has sub pixel hinting enabled by default. Due to this patent situation before, many users would install a third party build of freetype2 to get the best looking font reproduction they could; because of this it's clear to me at least (and probably many others) that the font rendering by default in 12.1 is really poor compared to what is possible. Comparisons ----------- Let me show you what I mean. I have taken a series of screenshots that clearly show the differences between the openSUSE default freetype package, and and another freetype package from a third party repo hosted on the open build service. Before I list the screenshots and their descriptions I'll briefly mention hardware. People are quite correct to mention that difference screens will show fonts slightly differently; but lets be clear... the differences in physical display of the font due to the properties/technology of the monitor are unrelated to how the glyphs intended and final representation is *computed*. In practice I find the font rendering differences between LCD monitors to be negligible and i.m.o. should not be considered for the purposes of this discussion. The differences I can demonstrate in my screenshots are obvious and identical across the following LCD screens, all of which have different native DPI's and panel technologies. Dell E197, 19", 6 Years old Samsung 226BW, 24" Wide, 4 Years old Iiyama E2607WS, 26" Wide, 1 Year old All of these screenshots are taken using 12.1 RC1, with proprietary Nvidia driver, the only difference in any of the screenshots will be the font used or the freetype package installed. I used both the default sans serif and the Akkurat sans serif fonts for comparison. The code view is using the MS Consolas monospaced font which is heavily optimized for sub pixel hinting and thus should show any potential problems. Here are the comparisons with some additional notes/comments: Default openSUSE 12.1 RC1 freetype2 libfreetype6 2.4.6 ------------------------------------------------------ System Settings: http://i.imgur.com/dmRhb.png In this side-by-side comparison we can immediately see there are problems with both hintslight and hintsfull. Hintslight is slightly blurry, especially at the smaller point sizes. IF we compare the default KDE font (DejaVu sans?) to the Akkurat sans font we see the same blurred renditions. Hintsfull decreases the blurring in both fonts but as you can see it also alters the apparent physical characteristics of both fonts. With hintsfull the individial glyphs *appear* to be shorter. In truth we can't tell which is more accurately representing the font because both hintslight and hintsfull do a very poor job. In addition we can see that the default monospaced font is showing some signs of mangling when hintsfull option is enabled. More on this below with the Consolas monospaced font. Dolphin: http://i.imgur.com/HHvv2.png Font Installer: http://i.imgur.com/CUF4M.png In the font installer preview, you can see the same issues described above. Code(Consolas): http://i.imgur.com/Jj54t.png MS Consolas font is heavily optimized for type hinting, this should show any weakness in the rendering approaches. With hinstslight this looks not too bad, but again there are clear signs of blurring, especially in italicised letters and glyphs with vertical straight lines such as "u", "m" and "n". Using hintsfull reveals another problem entirely, most glyphs are so heavily hinted that large sections of text appear to be bold when in fact they are not, additionally the rendering of glyphs with diagonal straight lines appears not to have much hinting at all in comparison to other glyphs. This makes words such as "Access" and "Expired" look quite mangled, not good. Muzlocker's freetype2[1], libfreetype6 2.4.7 ----------------------------------------------------------- System Settings: http://i.imgur.com/xqoDU.png Using hintslight, you can immediately see an improvement here, the blurring is much less noticable and even at 8 point size the font is reasonably crisp. Hintsfull continues to show the same problems, while still being crisp it still changes the physical appearance of the glyphs and words, the monospace font mangling is still apparent as well. Dolphin: http://i.imgur.com/ViCrZ.png Font Installer: http://i.imgur.com/Uyx79.png Code(Consolas): http://i.imgur.com/IUv7b.png Again, hintslight here is very much improved. The text is beautifully crisp and doesn't show many signs of blurring. Hinstfull continues to show the same problems as the default freetype package, at least for this font that was specifically designed to be used with type hinting and sub-pixel rendering. So what exactly is the difference? ---------------------------------- Good question, a look at the patches for both the 12.1[2] and Muzlocker[1] freetype packages show that sub-pixel hinting is enabled in both. Weird, there's un undeniable difference in clarity between these packages, especially using hintslight. Let's take a closer look at how the fonts are being rendered. http://i.imgur.com/EpMpJ.png Aha! Here's the problem. Clearly you can see with the default openSUSE 12.1 freetype package, sub-pixel rendering is either not working or not properly enabled in the package build. There *is* antialiasing but you can clearly see there is *no* sub-pixel hinting as shown in the rendering from using Muzlocker's freetype package. Conclusion ---------- Sub-pixel rendering is _not_ enabled by default (note that antialiasing and sub-pixel rendering are not the same thing), and should be properly enabled for the freetype package. Once sub-pixel hinting/rendering is properly enabled, hintslight should be the default hinting mode. Hintslight with sub pixel rendering properly addresses any blurriness of smaller point sizes, renders crisp text and avoids the mangling of typehint enabled fonts. The first thing a new user should see on booting openSUSE is a desktop with crisp clean fonts, we certinaly don't have that right now :( [1]https://build.opensuse.org/project/show?project=home%3Amuzlocker [2]https://build.opensuse.org/package/files?package=freetype2&project=openSUSE%3AFactory -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org