/[gzz]/manuscripts/Paper/paper.tex
ViewVC logotype

Diff of /manuscripts/Paper/paper.tex

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

revision 1.88 by tjl, Mon Mar 31 12:35:50 2003 UTC revision 1.89 by tjl, Mon Mar 31 13:35:21 2003 UTC
# Line 711  in the texture ``channel''. Line 711  in the texture ``channel''.
711    
712  \section{Hardware-accelerated implementation}  \section{Hardware-accelerated implementation}
713    
 TJL  
   
714  In this section, we discuss our hardware-accelerated implementation  In this section, we discuss our hardware-accelerated implementation
715  (libpaper)  (libpaper)
716  of unique backgrounds (papers).  of unique backgrounds (papers).
# Line 723  of unique backgrounds (papers). Line 721  of unique backgrounds (papers).
721  We have found that setting the parameters hierarchically  We have found that setting the parameters hierarchically
722  produces the best results: the parameters for different passes  produces the best results: the parameters for different passes
723  should depend on hyperparameters randomly selected for entire paper.  should depend on hyperparameters randomly selected for entire paper.
724    This is in accordance with the discussion about \cite{olson02vstm}
725  XXX REASONING: YELLOW SQUARE, RED TRIANGLE  above: the hyperparameters limit the number of different features
726    that are rendered onto one texture.
727    
728  Our current parameter hierarchy is shown in  Our current parameter hierarchy is shown in
729  Fig.~\ref{figpipeline}. The individual parameters are  Fig.~\ref{figpipeline}. The individual parameters are
# Line 745  See text for explanations. Line 744  See text for explanations.
744    
745  \subsection{Rationale for a Fragment-based implementation}  \subsection{Rationale for a Fragment-based implementation}
746    
747  Our implementation needs to support complicated mappings  One major goal for the
748    implementation is to support complicated mappings
749  between paper and screen coordinates, such as fisheye distortion.  between paper and screen coordinates, such as fisheye distortion.
750  To make this simple, all processing to obtain shapes on the paper  To make this simple, all processing when rendering the background texture
751  must be done on the fragment level after the texture accesses, i.e., we cannot use  must be done on the fragment level after the texture accesses, i.e., we cannot use
752  procedural geometry.  procedural geometry except if pre-rendering the background into a texture.
753    
754    However, pre-rendering each texture is likely to be too time- and memory-consuming
755    if there are dozens of different documents visible at the same time,
756    so
757    we shall limit ourselves to pure fragment-based rendering in this article.
758    However, if a single background  covers large areas of the screen,
759    pre-rendering may increase performance considerably, and therefore
760    our implementation does support
761    two rendering modes with different
762    tradeoffs. In the direct mode,
763    small, static basis textures are used, which requires 2-3 passes
764    with all texture units enabled.
765    In the
766    pre-rendered mode,
767    rendering
768    requires 1 pass with only one texture unit,
769    but the repeating unit of the texture
770    has to be
771    pre-rendered into a texture of its own.
772    To achieve a satisfactory image quality in zooming
773    with pre-rendering,
774    a relatively large texture has to be used for each background; 512x512 is not really sufficient.
775    
776  Plain OpenGL 1.3 does not by itself provide enough flexibility in the fragment  Plain OpenGL 1.3 does not by itself provide enough flexibility in the fragment
777  pipeline to allow the flexible generation of features.  pipeline to allow for generating features nonlinearly from
778    the basis textures.
779  Because of this, and the availability of stable Linux drivers,  Because of this, and the availability of stable Linux drivers,
780  our main platforms are NV10, i.e., OpenGL 1.3 +  our main platforms are NV10, i.e., OpenGL 1.3 +
781  \url{GL\_\hyp NV\_\hyp register\_\hyp combiners},  \url{GL\_\hyp NV\_\hyp register\_\hyp combiners},
# Line 778  and Linux drivers emerge. Line 801  and Linux drivers emerge.
801  % % How is it used?  % % How is it used?
802  % % XXX  % % XXX
803    
 We have two rendering modes with different  
 tradeoffs: direct, where  
 small, static basis textures are used, which requires 2-3 passes  
 with all texture units enabled, and  
 pre-rendered, where the repeating unit of the texture  
 is pre-rendered into a larger texture of its own, and rendering  
 requires 1 pass with only one texture unit.  
 To achieve a satisfactory image quality in zooming  
 with the latter approach,  
 a relatively large texture has to be used; 512x512 is not really sufficient.  
   
 If using only the direct mode, it would be possible to use procedural geometry  
 when generating the texture as well, but  
804    
805    
806  \subsection{Colors}  \subsection{Colors}

Legend:
Removed from v.1.88  
changed lines
  Added in v.1.89

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