1 |
ISSUES: |
This proposal is a bit long - feel free to take just the parts |
2 |
- how much should we discuss the texel-character stuff? |
you're interested in. |
|
- what should we say about proportional fonts? |
|
3 |
|
|
4 |
Legible text using the flexibility of modern GPUs |
Legible text using the flexibility of modern GPUs |
5 |
================================================= |
================================================= |
31 |
can be implemented optimally with a fragment program, and, with less |
can be implemented optimally with a fragment program, and, with less |
32 |
quality, with a combination of register combiners and LOD-biasing. |
quality, with a combination of register combiners and LOD-biasing. |
33 |
|
|
34 |
|
The second approach is to change the filtering paradigm entirely. |
35 |
|
This is possible because of the flexibility of e.g. the NV30. We have |
36 |
|
had some encouraging results from using NEAREST-filtering in OpenGL, |
37 |
|
but where at each texel, the *texel distance* between the texel and the |
38 |
|
font outline is stored. This allows the filtering to be based more on |
39 |
|
the font outline and less the pixellated representation, approximating |
40 |
|
a real font rasterer on the GPU. |
41 |
|
|
42 |
2. Subpixel rendering |
2. Subpixel rendering |
43 |
--------------------- |
--------------------- |
44 |
|
|
50 |
|
|
51 |
We show how a fragment program can be used to implement the sub-pixel |
We show how a fragment program can be used to implement the sub-pixel |
52 |
filtering by using the DDX, DDY and TXD instructions to access the |
filtering by using the DDX, DDY and TXD instructions to access the |
53 |
texture several times, for the ctriangular sampling filter commonly |
texture several times, for the tri-triangular sampling filter commonly |
54 |
used in subpixel rendering. |
used in subpixel rendering. |
55 |
|
|
56 |
A lesser-quality approximation can be obtained on NV2X with three |
A lesser-quality approximation can be obtained on NV2X with three |
59 |
for discussing the inverting of the homogeneous coordinate transformations |
for discussing the inverting of the homogeneous coordinate transformations |
60 |
in the vertex programs to shift the texture coordinates in screen space. |
in the vertex programs to shift the texture coordinates in screen space. |
61 |
|
|
|
[ 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. |
|
62 |
|
|
63 |
|
Figures |
64 |
|
------- |
65 |
|
|
66 |
FIGS!!! |
FIGS!!! |
67 |
- sharpening |
- sharpening |