[Bf-committers] text Hinting patch

GSR gsr.b3d at infernal-iceberg.com
Sun Nov 21 20:45:58 CET 2010

ton at blender.org (2010-11-15 at 1625.15 +0100):
> Revisiting topic: why is kerning different then? If we could combine  
> the crispy hinting with the narrow 1 pixel kerning, it would be all OK?
> > On Thu, Oct 28, 2010 at 5:50 PM, Michael Fox <mfoxdogg at gmail.com>  
> > wrote:
> >> http://mfoxdogg.com/development/text_hinting_fix.txt

Do you mean why allowing hinting changes apparent kerning?

Hinting pushes outlines to fit the pixel grid better, so pixels at
full intensity are used instead of spreading over extra pixels (some
at lower intensity). Simplest and more visible case would be 1 pixel
full intensity vs 2 at lower intensity to represent a thin "stick".

And kerning pushes full glyphs to reduce or increase separation with
the glyphs around, for example in "VA" the V top could go over the A
bottom, so it looks more like "\//\" than "\/ /\".

Lets zoom into the right zone of the V and the left zone of the A, one
char here == pixel on screen, "#" means full intensity, "|" means
lower, "." means no intensity.

- Hinting off, some lines fall between two pixels and become fuzzy
(other times they are single pixel, see second diagram), but the
separation is small and probably near constant all over the string:

..||.|| Both fuzzy, one pixel separation

..||.#. First fuzzy, second sharp, still one pixel separation

So distances among items are right, both glyph to glyph and inside the
same glyph, but the stroke intensity will vary wildly, and look fuzzy.

- Hinting on, with bad luck (or poorly designed font) that each glyph is
pushed in different directions:

..#...# Both sharp, moved away

...##.. Both sharp, moved towards each other

Then intensity is near constant (exceptions are corners that would be
lower intensity), but the distances would vary, making some letters in
the same word touch and others be separated a lot like if they had
half space in between.


More information about the Bf-committers mailing list