[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex |
Date: |
Mon, 18 Nov 2002 02:09:49 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/11/18 02:09:47
Modified files:
Documentation/Manuscripts/Paper: paper.tex
Log message:
register combiners
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Paper/paper.tex.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
Patches:
Index: gzz/Documentation/Manuscripts/Paper/paper.tex
diff -u gzz/Documentation/Manuscripts/Paper/paper.tex:1.34
gzz/Documentation/Manuscripts/Paper/paper.tex:1.35
--- gzz/Documentation/Manuscripts/Paper/paper.tex:1.34 Sun Nov 17 15:56:37 2002
+++ gzz/Documentation/Manuscripts/Paper/paper.tex Mon Nov 18 02:09:47 2002
@@ -279,35 +279,56 @@
\subsection{Register combiners}
-Register combiners are usually used for \\
-- lighting effects \\
-- color interpolation/blending \\
-
-Possible operations: addition and multiplication \\
-- designed for easily computing
-blending (AB+CD) and dot products (A dot B)
-
-Limitations: \\
-- could use more scaling range \\
-- value range $[-1,1]$
-
-We use them for \\
-- dot products between texture values and constant vectors \\
-- real values used to interpolate between colors
-
-band-like
-- draws a ``surface contour'' \\
-- computed by squaring the distance from the contour level
-
-{\bf jvk}
+Register combiners are used for fusing together the values read
+from the basis textures and computing the fragment output color
+using the palette chosen for the texture.
+
+NVIDIA register combiners subsume the standard OpenGL
+texture environment, color sum, and fog application with a
+more general programmable model.
+The possible computations are designed for the
+needs of ordinary operations such as bump map lighting and color blending.
+The primitive operations are dot product ($A \cdot B$), componentwise
+multiplication ($AB$), and ``blending'' ($AB + CD$).
+There is also a small set of simple input and output mappings
+for the registers, such as invert ($1-A$).
+
+Our need for the combiners is rather unconventional:
+we want to lose most of the information from the texture input values
+for the shapes of the basis textures to not become visible.
+Additionally, we want to create new, different shapes by varying
+the parameters of the combiner code based on the seed number.
+
+We use dot products between texture values and random constant vectors
+to extract information from the textures.
+Because the numeric range of all register values is $[-1,1]$,
+information is best lost by using the built-in output scaling (by $2$ or $4$)
+of the dot product results before clamping to the register range.
+
+New shapes can be created by computing polynomials of the real values.
+For example, the zero value contour of a real value can be obtained
+by squaring the value, scaling up, and then clamping to $1$.
+This produces nice band-like shapes.
+
+Finally, the computed real values are used for interpolating between
+the colors chosed for the texture. Typically, because of the scaling
+and clamping, the interpolation values have modes at $0$ and $1$
+and a transition band between the modes.
+
+
+%Because of the unconventional uses, the limitations of the
+%register combiners come up sooner: for example,
+%the output values can be scaled up only once per each general
+%combiner stage by at most 4.
\subsection{Multi-pass}
A simple way of increasing the visual features of the
textures is to use multiple passes.
-An alpha value computed with register combiners can be
-used for blending shapes over the texture drawn in the first pass.
-This allows using features of different combiner codes
+The register combiners can be used to compute an alpha
+value in the same way as the color interpolation values
+and use it for blending shapes over the texture drawn in the first pass.
+This allows using features of different register combiner codes
in one texture.
All the passes are assigned the same set of colors and
@@ -317,6 +338,10 @@
We use 3 passes on NV10 and 2 passes on NV20.
{\bf jvk}
+
+\subsection{Texture shading}
+
+Offset textures used for creating new shapes.
\section{Example application}
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/15
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/16
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex,
Janne V. Kujala <=
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/18
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/19
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Janne V. Kujala, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Paper paper.tex, Tuomas J. Lukka, 2002/11/22