/[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.96 by tjl, Fri Nov 29 10:50:54 2002 UTC revision 1.97 by tjl, Fri Nov 29 12:01:39 2002 UTC
# Line 470  must be done after the texture accesses, Line 470  must be done after the texture accesses,
470  procedural geometry.  procedural geometry.
471  % XXX  % XXX
472    
473    The main components, corresponding to the extended OpenGL pipelines
474    are shown in Fig.~\ref{figpipeline}.
475    
476    \begin{figure}
477    \caption{\label{figpipeline}The components of our hardware-accelerated implementation.}
478    \end{figure}
479    
480  %Performance: zoomability, memory, speed  %Performance: zoomability, memory, speed
481    
# Line 664  repeat multiple times inside the repeati Line 670  repeat multiple times inside the repeati
670  w.r.t.~the repeating unit. These are also randomly chosen  w.r.t.~the repeating unit. These are also randomly chosen
671  from an ad hoc distribution.  from an ad hoc distribution.
672    
673    \subsection{Texture shading}
674    
675    On the NV25 architecture,
676    the texture accesses can be customized further by the use of texture
677    shading: the texture coordinates in a texture access can be made
678    to depend on the result of a previous texture access.
679    This can create a large variety of shapes, as seen already
680    in Perlin's work\cite{perlin-noise-intro}.
681    So far, we have only used offset textures with random
682    offset matrices, but even they
683    do improve the quality of the output.
684    The textures used for offsetting are the same as the
685    basic textures, but loaded as higher precision two-component HILO textures.
686    
687    
688  \subsection{Register combiners}  \subsection{Register combiners}
689    
690  Register combiners are used for fusing together the values read  After the texture accesses, we need to convert
691  from the basis textures and computing the fragment output color  the 3- and 4-vectors obtained from the basis textures and
692  using the palette chosen for the background.  the palette color values into the final fragment color.
693    The basic OpenGL texture environment stage is somewhat inadequate
694    for this, so we use the NVIDIA register combiners extension
695    instead.
696    
697    % Register combiners are used for fusing together the values read
698    % from the basis textures and computing the fragment output color
699    % using the palette chosen for the background.
700    
701  NVIDIA register combiners replace the standard OpenGL  NVIDIA register combiners replace the standard OpenGL
702  texture environment, color sum, and fog application with a  texture environment, color sum, and fog application with a
# Line 682  for the registers, such as invert ($1-A$ Line 710  for the registers, such as invert ($1-A$
710    
711  Our need for the combiners is rather unconventional:  Our need for the combiners is rather unconventional:
712  we want to lose most of the original shapes of the basis textures  we want to lose most of the original shapes of the basis textures
713    (again the ``saving recognitive power'' argument)
714  and create new, different shapes  and create new, different shapes
715  from the interaction of the basis texture inputs.  from the interaction of the basis texture values and
716  Additionlly, we want to create more variation by varying  the floating-point combiner parameters chosen randomly
717  the parameters of the combiner code based on the seed number.  from the seed number.
718    
719  We use dot products of texture values and random constant vectors  We use dot products of texture values with each other
720    and with random constant vectors
721  to extract features from the textures.  to extract features from the textures.
722  % XXX: either (texture \cdot texture) or (texture \cdot constant)  % XXX: either (texture \cdot texture) or (texture \cdot constant)
723  Because the numeric range of all register values is $[-1,1]$,  Because the numeric range of all register values is $[-1,1]$,
# Line 697  We use the built-in output scaling (by $ Line 727  We use the built-in output scaling (by $
727  results before clamping to the register range to sharpen  results before clamping to the register range to sharpen
728  the gradients and to diminish the area from which the features  the gradients and to diminish the area from which the features
729  of a single basis texture are extracted.  of a single basis texture are extracted.
730    For an example of how new shapes are created, see Fig.~\ref{fig-regcomb}.
731    
732  New shapes can be created by computing polynomials of the real values  % New shapes can be created by computing polynomials of the real values
733  extracted from the basis textures.  % extracted from the basis textures.
734  For example, the zero value contour of a real value can be obtained  % For example, the zero value contour of a real value can be obtained
735  by squaring the value, scaling up, and then clamping to $1$.  % by squaring the value, scaling up, and then clamping to $1$.
736  This produces nice band-like shapes (see Fig.~\ref{fig-regcomb}).  % This produces nice band-like shapes (see Fig.~\ref{fig-regcomb}).
737    
738  Finally, the computed real values are used for interpolating between  Finally, the computed real values are used for interpolating between
739  the colors chosen for the backround. Typically, because of the scaling  the colors chosen for the backround.
740  and clamping, the interpolation values have modes at $0$ and $1$  % Typically, because of the scaling
741  and a transition band between the modes.  % and clamping, the interpolation values have modes at $0$ and $1$
742    % and a transition band between the modes.
743  % XXX: the amount of scaling determines the sharpness of the edges  % XXX: the amount of scaling determines the sharpness of the edges
744    
745  %Because of the unconventional uses, the limitations of the  %Because of the unconventional uses, the limitations of the
# Line 761  This term can then be used to modulate b Line 793  This term can then be used to modulate b
793    
794  Because there are only a few register combiner computation  Because there are only a few register combiner computation
795  stages on NV10, a single rendering pass cannot  stages on NV10, a single rendering pass cannot
796  produce a very full background.  produce a satisfactory background.
797  A simple way of increasing the visual features of the  A simple way of increasing the visual features of the
798  backrounds is to use multiple passes.  backgrounds is to use multiple passes.
799    
800  The register combiners can be used to compute an alpha  The register combiners can be used to compute an alpha
801  value in the same way as the color interpolation values  value in the same way as the color interpolation values
# Line 775  All the passes are assigned the same set Line 807  All the passes are assigned the same set
807  the same repeating unit(s) to make them blend into a  the same repeating unit(s) to make them blend into a
808  single perceived layer.  single perceived layer.
809    
810  We use 3 passes on NV10 and 2 passes on NV25.  Currently, we use 3 passes on the NV10 and 2 passes on the NV25.
   
 \subsection{Texture shading}  
   
 On higher end hardware, the diversity of the shapes can be  
 increased with offset textures.  
 Another set of basis textures are randomly chosen for  
 offsetting the texture coordinates of the first set of textures.  
 To further increase variation, the offset values are multiplied  
 by a random matrix.  
 The textures used for offsetting are similar to the  
 basic textures, but loaded as higher precision two-component HILO textures.  
   
 %Offset textures used for creating new shapes.  
   
 XXX  
811    
812  \section{Example application}  \section{Example application}
813    
814  \begin{figure*}  \begin{figure*}
815  \centering  \centering
816  \fbox{\vbox{\vskip 5in}}  \fbox{\vbox{\vskip 8in}}
817  \caption{  \caption{
818  \label{fig-identity-via-textures}  \label{fig-identity-via-textures}
819  a) different documents with similar appearance and a focus+context view  Two different views of a structure of PDF documents viewed in a focus+context view.
820  showing relations,  The view shows relationships between specific points in the documents,
821  b) the same documents and the same view with identity visualized with unique backgrounds. If viewing this document on a screen, make sure the your gamma is properly set; the text {\bf is} readable if the gamma is correct but the textures are too dark if not.  similar to Nelson's work XXX.
822    Each document has an unique background, which makes it easy to see that the
823    fragment of a document on the left side of the bottom view is the document fully seen
824    in the top view; without unique backgrounds, this would be relatively difficult
825    and would require traversing the link.
826    If viewing this document on a screen,
827    make sure the your gamma is properly set; the text {\bf is} readable
828    if the gamma is correct but the textures are too dark if not.
829  }  }
830  \end{figure*}  \end{figure*}
831    
# Line 837  fluidly in and out helps. Line 861  fluidly in and out helps.
861  So far, we have concentrated mostly on low-end hardware, and  So far, we have concentrated mostly on low-end hardware, and
862  have not even tapped the full potential of the NV25 architecture.  have not even tapped the full potential of the NV25 architecture.
863    
864  We are currently working on implementing  We are working on implementing
865  similar algorithms on ATI hardware, due to their recent release  similar algorithms on ATI's extensions, due to their recent release
866  of a Linux driver.  of a Linux driver.
867  The new graphics chips, ATI R300 and NVIDIA NV30 support  The new graphics chips, ATI R300 and NVIDIA NV30 support
868  a great deal more of procedural texturing and it will  a great deal more of procedural texturing and it will
# Line 846  be interesting to apply the same criteri Line 870  be interesting to apply the same criteri
870  The algorithms can be further developed: simulating lighting and  The algorithms can be further developed: simulating lighting and
871  a rough surface could produce good results.  a rough surface could produce good results.
872    
873    ARB fragment program
874    
875    Usability
876    
877  %  %
878  % Each basis texture is repeating,  % Each basis texture is repeating,
879  % but by choosing the texture coordinates  % but by choosing the texture coordinates
# Line 862  In order to create more interesting back Line 890  In order to create more interesting back
890  to use repeating units for non-repeating backgrounds --- but use more than one,  to use repeating units for non-repeating backgrounds --- but use more than one,
891  which are not rationally related.  which are not rationally related.
892    
893    Nonlinear regcomb leads to aliasing: .... modeling textures mathematically , ...
894    
895    2 passes on NV25 too much; should be possible with 1
896    
897  \section{MPEG Animation}  \section{MPEG Animation}
898  [not to be included in final ms.]  [not to be included in final ms.]

Legend:
Removed from v.1.96  
changed lines
  Added in v.1.97

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