/[gzz]/gzz/Documentation/Manuscripts/Paper/paper.tex
ViewVC logotype

Diff of /gzz/Documentation/Manuscripts/Paper/paper.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.34 by tjl, Sun Nov 17 20:56:37 2002 UTC revision 1.35 by jvk, Mon Nov 18 07:09:47 2002 UTC
# Line 279  with the selected repeating unit. Line 279  with the selected repeating unit.
279    
280  \subsection{Register combiners}  \subsection{Register combiners}
281    
282  Register combiners are usually used for \\  Register combiners are used for fusing together the values read
283  - lighting effects \\  from the basis textures and computing the fragment output color
284  - color interpolation/blending \\  using the palette chosen for the texture.
285    
286  Possible operations: addition and multiplication \\  NVIDIA register combiners subsume the standard OpenGL
287  - designed for easily computing  texture environment, color sum, and fog application with a
288  blending (AB+CD) and dot products (A dot B)  more general programmable model.
289    The possible computations are designed for the
290  Limitations: \\  needs of ordinary operations such as bump map lighting and color blending.
291  - could use more scaling range \\  The primitive operations are dot product ($A \cdot B$), componentwise
292  - value range $[-1,1]$  multiplication ($AB$), and ``blending'' ($AB + CD$).
293    There is also a small set of simple input and output mappings
294  We use them for \\  for the registers, such as invert ($1-A$).
295  - dot products between texture values and constant vectors \\  
296  - real values used to interpolate between colors  Our need for the combiners is rather unconventional:
297    we want to lose most of the information from the texture input values
298  band-like  for the shapes of the basis textures to not become visible.
299  - draws a ``surface contour'' \\  Additionally, we want to create new, different shapes by varying
300  - computed by squaring the distance from the contour level  the parameters of the combiner code based on the seed number.
301    
302  {\bf jvk}  We use dot products between texture values and random constant vectors
303    to extract information from the textures.
304    Because the numeric range of all register values is $[-1,1]$,
305    information is best lost by using the built-in output scaling (by $2$ or $4$)
306    of the dot product results before clamping to the register range.
307    
308    New shapes can be created by computing polynomials of the real values.
309    For example, the zero value contour of a real value can be obtained
310    by squaring the value, scaling up, and then clamping to $1$.
311    This produces nice band-like shapes.
312    
313    Finally, the computed real values are used for interpolating between
314    the colors chosed for the texture. Typically, because of the scaling
315    and clamping, the interpolation values have modes at $0$ and $1$
316    and a transition band between the modes.
317    
318    
319    %Because of the unconventional uses, the limitations of the
320    %register combiners come up sooner: for example,
321    %the output values can be scaled up only once per each general
322    %combiner stage by at most 4.
323    
324  \subsection{Multi-pass}  \subsection{Multi-pass}
325    
326  A simple way of increasing the visual features of the  A simple way of increasing the visual features of the
327  textures is to use multiple passes.  textures is to use multiple passes.
328  An alpha value computed with register combiners can be  The register combiners can be used to compute an alpha
329  used for blending shapes over the texture drawn in the first pass.  value in the same way as the color interpolation values
330  This allows using features of different combiner codes  and use it for blending shapes over the texture drawn in the first pass.
331    This allows using features of different register combiner codes
332  in one texture.  in one texture.
333    
334  All the passes are assigned the same set of colors and  All the passes are assigned the same set of colors and
# Line 318  We use 3 passes on NV10 and 2 passes on Line 339  We use 3 passes on NV10 and 2 passes on
339    
340  {\bf jvk}  {\bf jvk}
341    
342    \subsection{Texture shading}
343    
344    Offset textures used for creating new shapes.
345    
346  \section{Example application}  \section{Example application}
347    
348  \begin{figure*}  \begin{figure*}

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26