23 |
allow complicated mappings such as fisheye distortion between the paper and |
allow complicated mappings such as fisheye distortion between the paper and |
24 |
screen coordinates. |
screen coordinates. |
25 |
|
|
26 |
|
For each unique background texture, a small palette of colors is |
27 |
|
selected randomly from a heuristic distribution. The shapes of the |
28 |
|
final background texture are generated entirely from a small set of |
29 |
|
static "basis textures" bound to texture units with randomly chosen |
30 |
|
affine texture coordinate mappings using vertex programs. Even though |
31 |
|
the basis textures are RGB textures, they contain no color information: |
32 |
|
they are simply treated as 3- or 4-vectors and combined nonlinearly |
33 |
|
and the results are used to interpolate between the palette colors |
34 |
|
to produce the final fragment colors. |
35 |
|
|
36 |
Plain OpenGL 1.3 does not by itself provide enough flexibility in the |
Plain OpenGL 1.3 does not by itself provide enough flexibility in the |
37 |
fragment pipeline to allow for generating features nonlinearly from |
fragment pipeline to allow for generating features nonlinearly from |
38 |
the basis textures[Fig.3]. Because of this, and the availability of |
the basis textures[Fig.3]. Because of this, and the availability of |
42 |
and GL_NV_fragment_program now that we have obtained our first NV3X-based |
and GL_NV_fragment_program now that we have obtained our first NV3X-based |
43 |
card. |
card. |
44 |
|
|
|
For each unique background texture, a small palette of colors is |
|
|
selected randomly from a heuristic distribution. The shapes of the |
|
|
final background texture are generated entirely from a small set of |
|
|
static "basis textures" bound to texture units with randomly chosen |
|
|
affine texture coordinate mappings using vertex programs. Even though |
|
|
the basis textures are RGB textures, they contain no color information: |
|
|
they are simply treated as 3- or 4-vectors and combined using the NVIDIA |
|
|
register combiners extension with the palette colors to produce the final |
|
|
fragment colors. |
|
|
|
|
45 |
The use of the combiners is rather unconventional: we want to lose most |
The use of the combiners is rather unconventional: we want to lose most |
46 |
of the original shapes of the basis textures in order to create new, |
of the original shapes of the basis textures in order to create new, |
47 |
different shapes from the interaction of the basis texture values and |
different shapes from the interaction of the basis texture values and |