2nd revision of my post. Reorganized headings and tried to better explain the blending examples.
diff --git a/index.html b/index.html
index c92d541..e4493a0 100644
--- a/index.html
+++ b/index.html
@@ -106,71 +106,9 @@
 
           <p>FreeType 2.6.2 ships with three interesting details for
             users and developers of rendering libraries that deal with
-            text.</p>
-
-
-          <h5>The default LCD filter for subpixel rendering has been
-            changed</h5>
-
-          <a href="image/freetype-262-new-old-filter.png">
-            <img src="image/freetype-262-new-old-filter-thumbnail.jpg"
-                 alt="Comparison of the old and new filter."></a>
-
-          <p>When you look at subpixel-rendered text, no matter
-            whether it is on some kind of Unix, Windows, or Mac
-            OS&nbsp;X, you might notice that it is slightly colored.
-            Using subpixel rendering on LCD panels is a trade-off; you
-            get three times higher resolution in the direction of the
-            pixel-substripe (usually horizontal RGB) in exchange for
-            color artifacts, also called <em>color fringing</em>.  For
-            this reason it is necessary to filter a subpixel-rendered
-            glyph to reduce those color-fringing before putting it
-            somewhere on the screen.  The filter distributes the
-            values of a subpixel to its neighbors, sacrificing some of
-            the higher resolution and making the resulting glyph image
-            blurrier – but the positioning improvement remains!  The
-            ideal filter for you depends on your screen (gamma
-            curves!), the capabilities of the used rendering system
-            (linear alpha blending and gamma correction!), your vision
-            and your taste, probably in that order.</p>
-
-          <p>A filter should have two properties: it should be
-            normalized, meaning the values used in the filter should
-            sum up to a figurative&nbsp;1 (here: 0x100 or 256) and it
-            should be color-balanced, meaning that values for one
-            subpixel are equally distributed to all other subpixels of
-            a pixel to sacrifice some of the higher resolution to
-            drastically reduce color-fringes.</p>
-
-          <p>Previously, FreeType's default LCD filter was neither
-            normalized nor color-balanced.  That was a deliberate
-            choice because there is still no rendering system on
-            *nixes that does linear alpha blending and gamma
-            correction by default to render glyphs correctly.  Going
-            above a filter sum of&nbsp;1 increased contrast somewhat
-            at the expense of slight distortions and increased
-            color-fringing, so this can be seen as a hack.  You might
-            have noticed that thumbnails in various places on your
-            computer that show text could be quite colorful.  Now you
-            know why.</p>
-
-          <p>The new default filter is both normalized and
-            color-balanced.  It is indeed ever so slightly blurrier
-            than the previous default one, but also lacks its
-            harshness and is less color-happy.  The blurriness also
-            means higher tolerance for non-ideal gamma of screens
-            (viewing angles!) and rendering systems without linear
-            alpha blending.  Note that color-fringing can only be
-            really minimized when the rendering system will do linear
-            alpha blending of text.</p>
-
-          <p>The &lsquo;light&rsquo; filter that has accompanied the
-            default one for so long stays unchanged: it already is
-            normalized and color-balanced.  It is sharper than the
-            default one but less tolerant of uncalibrated screens and
-            rendering systems without linear alpha blending, producing
-            more color-fringes.</p>
-
+            text. <em>This is the 2nd revision of my post, done on 2015-12-06.
+            I reorganized the headings and tried to better explain the blending
+          examples.</em></p>
 
           <h5>(S)light hinting will invoke the native hinter if possible</h5>
 
@@ -243,8 +181,7 @@
             one, as Ubuntu has proven over the years.</p>
 
 
-          <h5>Stem darkening for the auto-hinter (disabled by default), also
-            disabling stem darkening for the OpenType/CFF driver</h5>
+          <h5>Experimental: Stem darkening for the auto-hinter</h5>
 
           <a href="image/freetype-262-autohinter-stem-darkening-demo1.png">
             <img src="image/freetype-262-autohinter-stem-darkening-demo1-thumbnail.jpg"
@@ -292,7 +229,7 @@
             rather than the exception.</p>
 
           <p>This is relevant because all our screens have a second
-            problem: they are not linear.  1&nbsp+&nbsp;1 is
+            problem: they are not linear.  1&nbsp;+&nbsp;1 is
             not&nbsp;2.  Twice the value does not result in twice the
             brightness.  When a pixel is only 50% covered, the
             coverage map says 50% black, and this translates to a
@@ -332,13 +269,6 @@
             with <a href="http://lists.nongnu.org/archive/html/freetype-devel/2015-11/msg00020.html";>as
             little color-fringing as possible</a>.</p>
 
-          <a href="image/BlendingExamples.png">
-            <img src="image/BlendingExamples-thumbnail.jpg"
-                 alt="Comparison of different ways of blending."></a>
-
-          <p>We want to get to &lsquo;Gamma 1.8, darkened&rsquo;.
-            Note how it is the cleanest rendering of all.</p>
-
           <h6>Back to stem darkening.</h6>
 
           <p>Assume we render fonts correctly.  Gamma correction
@@ -358,20 +288,49 @@
             prevents &lsquo;thinning out&rsquo; of glyphs.  Text
             remains readable at smaller sizes.</p>
 
+          <a href="image/BlendingExamples.png">
+            <img src="image/BlendingExamples-thumbnail.jpg"
+                 alt="Comparison of different ways of blending."></a>
+
+          <p>"Gamma 1.0" shows what happens when you take a grayscale coverage
+          bitmap from FreeType and blend it onto a surface in linear space.
+          Black-on-white is heavier than white-on-black and red-on-green has
+          dark halos or &lsquo;dirt&rsquo; around it. Note that this picture is unrealistic
+          in the sense that no rendering system on X11 does linear alpha
+          blending, so imagine something worse.  &ldquo;Gamma 1.8&rdquo; is the
+          result of linear alpha blending <em>and</em> gamma correction. It is
+          much better, but text &lsquo;thins out&rsquo;, making it harder to read. Adding
+          stem darkening gets us to &ldquo;Gamma 1.8, darkened&rdquo;. Note how it's the
+          cleanest rendering of all.  &ldquo;Gamma 1.0, darkened&rdquo;, meaning linear
+          alpha blending without gamma correction but with stem darkening,
+          exaggerates the effects of &ldquo;Gamma 1.0&rdquo;. Stem darkening should only be
+          enabled when doing gamma correction, so ideally always ;)</p>
+
           <a href="image/freetype-262-autohinter-stem-darkening-demo2.png"><img src="image/freetype-262-autohinter-stem-darkening-demo2-thumbnail.jpg" alt="Waterfall comparison of non-emboldening and emboldening autohinter."></a>
+          <p>The autohinter has a new toggable stem darkening property that
+          works like the stem darkener in Adobe's CFF engine. Note how it makes
+          text slightly bolder with the default parameters, down to small pixel
+          sizes. Gamma correction active to demonstrate the &lsquo;thinning out&rsquo; of
+          text especially at smaller pixel sizes with lots of gray pixels.</p>
 
           <p>And that is the story behind this feature.</p>
 
-          <p>It is disabled by default because no library supports
-            linear alpha blending and gamma correction out of the box.
-            Existing libraries will get the same glyphs they have
-            always gotten.  Qt5 actually had gamma correction enabled
+          <h5>Disabled stem darkening for the autohinter and Adobe's CFF (.otf) engine</h5>
+
+          <p>No library supports linear alpha blending and gamma correction out
+          of the box on X11. Turning on stem darkening leads to heavy and fuzzy
+          looking glyphs as in &ldquo;Gamma 1.0, darkened&rdquo; above, so it's
+          better to disable it.</p>
+          
+          <p>Qt5 actually had gamma correction enabled
             for a short while until someone complained that text was
             too light and unlike rendering in other toolkits, so the
             maintainers <a href="https://bugreports.qt.io/browse/QTBUG-41590";>disabled
             it for the XCB-backend</a>.  Skia (Chrome) can do
-            gamma-correction, but turns it off for X11.  I see the
-            this feature as a technology preview for playing around
+          gamma-correction, but turns it off for X11.</p>
+
+          <p>I see autohinter stem
+            darkening as a technology preview for playing around
             with until we get stem darkening generic within FreeType.
             The plan is to provide it for all font drivers and make it
             toggable per <code>FT_Library</code> just like
@@ -386,6 +345,68 @@
             no longer heavy and fuzzy.  Slight hinting will result in
             consistent font rendering.</p>
 
+          <h5>The default LCD filter for subpixel rendering has been
+            changed</h5>
+
+          <a href="image/freetype-262-new-old-filter.png">
+            <img src="image/freetype-262-new-old-filter-thumbnail.jpg"
+                 alt="Comparison of the old and new filter."></a>
+
+          <p>When you look at subpixel-rendered text, no matter
+            whether it is on some kind of Unix, Windows, or Mac
+            OS&nbsp;X, you might notice that it is slightly colored.
+            Using subpixel rendering on LCD panels is a trade-off; you
+            get three times higher resolution in the direction of the
+            pixel-substripe (usually horizontal RGB) in exchange for
+            color artifacts, also called <em>color fringing</em>.  For
+            this reason it is necessary to filter a subpixel-rendered
+            glyph to reduce those color-fringing before putting it
+            somewhere on the screen.  The filter distributes the
+            values of a subpixel to its neighbors, sacrificing some of
+            the higher resolution and making the resulting glyph image
+            blurrier – but the positioning improvement remains!  The
+            ideal filter for you depends on your screen (gamma
+            curves!), the capabilities of the used rendering system
+            (linear alpha blending and gamma correction!), your vision
+            and your taste, probably in that order.</p>
+
+          <p>A filter should have two properties: it should be
+            normalized, meaning the values used in the filter should
+            sum up to a figurative&nbsp;1 (here: 0x100 or 256) and it
+            should be color-balanced, meaning that values for one
+            subpixel are equally distributed to all other subpixels of
+            a pixel to sacrifice some of the higher resolution to
+            drastically reduce color-fringes.</p>
+
+          <p>Previously, FreeType's default LCD filter was neither
+            normalized nor color-balanced.  That was a deliberate
+            choice because there is still no rendering system on
+            *nixes that does linear alpha blending and gamma
+            correction by default to render glyphs correctly.  Going
+            above a filter sum of&nbsp;1 increased contrast somewhat
+            at the expense of slight distortions and increased
+            color-fringing, so this can be seen as a hack.  You might
+            have noticed that thumbnails in various places on your
+            computer that show text could be quite colorful.  Now you
+            know why.</p>
+
+          <p>The new default filter is both normalized and
+            color-balanced.  It is indeed ever so slightly blurrier
+            than the previous default one, but also lacks its
+            harshness and is less color-happy.  The blurriness also
+            means higher tolerance for non-ideal gamma of screens
+            (viewing angles!) and rendering systems without linear
+            alpha blending.  Note that color-fringing can only be
+            really minimized when the rendering system will do linear
+            alpha blending of text.</p>
+
+          <p>The &lsquo;light&rsquo; filter that has accompanied the
+            default one for so long stays unchanged: it already is
+            normalized and color-balanced.  It is sharper than the
+            default one but less tolerant of uncalibrated screens and
+            rendering systems without linear alpha blending, producing
+            more color-fringes.</p>
+
           <p class="footnote"><a name="ft-262-1">[1]</a> This process
             can cost performance.  There is an approximation that does
             not need to know about the background
_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to