gzz-commits
[Top][All Lists]
Advanced

[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}
 




reply via email to

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