|
@@ -5,7 +5,16 @@ benefits of oversampling. It will try to use arial.ttf from the
|
|
Windows font directory unless you type the name of a .ttf file as
|
|
Windows font directory unless you type the name of a .ttf file as
|
|
a command-line argument.
|
|
a command-line argument.
|
|
|
|
|
|
-## About oversampling
|
|
|
|
|
|
+## Benefits of oversampling
|
|
|
|
+
|
|
|
|
+Improving subpixel has a few benefits:
|
|
|
|
+
|
|
|
|
+* Text can remain sharper while still being sub-pixel positioned for better kerning
|
|
|
|
+* Horizontally-oversampled text significantly reduces aliasing when text animates horizontally
|
|
|
|
+* Vertically-oversampled text significantly reduces aliasing when text animates vertically
|
|
|
|
+* Text oversampled in both directions significantly reduces aliasing when text rotates
|
|
|
|
+
|
|
|
|
+## What text oversampling is
|
|
|
|
|
|
A common strategy for rendering text is to cache character bitmaps
|
|
A common strategy for rendering text is to cache character bitmaps
|
|
and reuse them. For hinted characters, every instance of a given
|
|
and reuse them. For hinted characters, every instance of a given
|
|
@@ -43,9 +52,10 @@ So, setting oversampling of 2x2 in stb_truetype is equivalent to caching
|
|
each character in 4 different variations, 1 for each subpixel position
|
|
each character in 4 different variations, 1 for each subpixel position
|
|
in a 2x2 set.
|
|
in a 2x2 set.
|
|
|
|
|
|
-The advantage of this formulation is that no changes are required to
|
|
|
|
|
|
+An advantage of this formulation is that no changes are required to
|
|
the rendering code; the exact same quad-rendering code works, it just
|
|
the rendering code; the exact same quad-rendering code works, it just
|
|
uses different texture coordinates. (Note this does potentially increase
|
|
uses different texture coordinates. (Note this does potentially increase
|
|
texture bandwidth for text rendering since we end up minifying the texture
|
|
texture bandwidth for text rendering since we end up minifying the texture
|
|
without using mipmapping, but you probably are not going to be fill-bound
|
|
without using mipmapping, but you probably are not going to be fill-bound
|
|
by your text rendering.)
|
|
by your text rendering.)
|
|
|
|
+
|