[Top][All Lists]
[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!!!
- [Gzz-commits] manuscripts/AGPU fonts.txt, Janne V. Kujala, 2003/04/08
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/08
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/08
- [Gzz-commits] manuscripts/AGPU fonts.txt, Janne V. Kujala, 2003/04/09
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/12
- [Gzz-commits] manuscripts/AGPU fonts.txt,
Tuomas J. Lukka <=
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/12
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/12
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/14
- [Gzz-commits] manuscripts/AGPU fonts.txt, Tuomas J. Lukka, 2003/04/14