gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] manuscripts/AGPU fonts.txt


From: Tuomas J. Lukka
Subject: [Gzz-commits] manuscripts/AGPU fonts.txt
Date: Sat, 12 Apr 2003 07:33:46 -0400

CVSROOT:        /cvsroot/gzz
Module name:    manuscripts
Changes by:     Tuomas J. Lukka <address@hidden>        03/04/12 07:33:46

Modified files:
        AGPU           : fonts.txt 

Log message:
        edit

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/manuscripts/AGPU/fonts.txt.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: manuscripts/AGPU/fonts.txt
diff -u manuscripts/AGPU/fonts.txt:1.7 manuscripts/AGPU/fonts.txt:1.8
--- manuscripts/AGPU/fonts.txt:1.7      Sat Apr 12 07:03:21 2003
+++ manuscripts/AGPU/fonts.txt  Sat Apr 12 07:33:46 2003
@@ -5,40 +5,63 @@
 Legible text using the flexibility of modern GPUs
 =================================================
 
-Although it has recently become a commodity, 3D hardware has found
-little use in business applications.  Rotated and smoothly scaled text
-can enable new types of user interfaces.  However, mipmapping
-artifacts reduce readability: trilinear filtering blurs the font edges
-of rendered text.
-
 We present two approaches for using the GPU to enhance the appearance
 of mipmapped text: sharpening and subpixel rendering on LCDs.  We also
 present a method for efficiently rendering text strings stored in a
 texture (with each texel coding one character).
 
-Text sharpening works by applying a linear sharpening filter to the
-image using multiple texture accesses. Unfortunately, the sharpening
-increases aliasing artifacts with motion, which needs to be dealt
-with. One approach is fading off the sharpening as movement starts.
-The sharpening can be implemented with a fragment program or with
-register combiners and LOD-biasing.
+Although most of these methods are well-known, we believe that their
+real-time GPU implementation is novel and has several interesting aspects.
+
+1. Sharpening text
+------------------
+
+In our research on flexible hypertextual user interfaces, we often
+want to use rotated, scaled, sheared or curving text.  Because normal
+windowing systems (such as X) do not provide for this, we have turned to
+OpenGL. However, as is well known to the graphics community, trilinear
+filtering does Horrible Things to text (but bilinear / nearest filtering
+are even worse): the text, especially at small font sizes, is often too
+blurred to read comfortably.
+
+The first approach for sharpening text is to apply a linear sharpening
+filter in image space through performing multiple texture accesses.
+Unfortunately, the sharpening increases aliasing artifacts with motion,
+which needs to be dealt with. One approach is fading off the sharpening
+as movement starts, in a kind of a "motion blur" effect.  The sharpening
+can be implemented optimally with a fragment program, and, with less
+quality, with a combination of register combiners and LOD-biasing.
+
+2. Subpixel rendering
+---------------------
 
+One approach to enhancing text legibility on LCD displays that
+has been gaining popularity in the recent years is subpixel rendering.
 Subpixel rendering uses the known ordering of the RGB sub-pixels of
 LCD displays for tripling the effective horizontal resolution of
-rendered black-and-white text. A fragment program can be used to
-implement the sub-pixel filtering.  It could also be possible to
-obtain an approximation of the sub-pixel filtering on NV2X with three
-texture units, register combiners, and a vertex program for computing
-the sub-pixel-shifted texture coordinates, which would provide an
-opportunity for discussing homogeneous coordinate transformations.
+rendered black-and-white text. 
 
+We show how a fragment program can be used to implement the sub-pixel
+filtering by using the DDX, DDY and TXD instructions to access the
+texture several times, for the ctriangular sampling filter commonly
+used in subpixel rendering.
+
+A lesser-quality approximation can be obtained on NV2X with three
+texture units, register combiners, and a vertex program for computing the
+sub-pixel-shifted texture coordinates, which would provide an opportunity
+for discussing the inverting of the homogeneous coordinate transformations
+in the vertex programs to shift the texture coordinates in screen space.
+
+[ there are also some practical aspects related to rendering of mosaiced
+fonts such as borders &c which we *can* discuss here if you feel like it
+]
+
+3. Fragment-based text
+----------------------
 The rendering of text strings from texture uses offset texturing: each
 texel in the text texture stores the offset to the correct glyph in a
 font texture. The rendering time depends only on the rendered size of
 the text fragment and not on the number of individual characters.
-
-Although these methods are well-known, we believe that their
-real-time GPU implementation is novel.
 
 
 FIGS!!!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]