/[gzz]/manuscripts/AGPU/fillets.txt
ViewVC logotype

Diff of /manuscripts/AGPU/fillets.txt

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

revision 1.3 by tjl, Mon Apr 7 13:11:12 2003 UTC revision 1.4 by tjl, Tue Apr 8 07:52:42 2003 UTC
# Line 1  Line 1 
   
 Z-buffer use in drawing 2 1/2 D non-photorealistic shapes.  
   
 Line drawings drawn differently for algorithmic ease.  
   
 Achieving a specific rendering goal efficiently, several different methods.  
   
 All techniques pretty familiar, but the application is novel.  
   
 -------  
   
1  Rendering fillets  Rendering fillets
2    =================
3    
4  Fillets (Lukka, Kujala and Niemelä, Information Visualization'02  Fillets (Lukka, Kujala and Niemelä, Information Visualization'02
5  conference, reprint available on request) are graphical technique for  conference, reprint available on request) are graphical technique for
# Line 19  or metal casting (A. Rockwood, chapter 6 Line 9  or metal casting (A. Rockwood, chapter 6
9  "Introduction to Implicit Surfaces", Morgan Kaufmann 1997),  "Introduction to Implicit Surfaces", Morgan Kaufmann 1997),
10  mean the fillings used for sharp crevices to avoid breaking of the finished  mean the fillings used for sharp crevices to avoid breaking of the finished
11  object at the sharp corners.  Our use of fillets here is analogical:  object at the sharp corners.  Our use of fillets here is analogical:
12  we use fillets to avoid the viewer's perception breaking the object and  we use 2 1/2 D fillets to avoid the viewer's perception breaking the object and
13  the line into separate pieces.  the line into separate pieces.
14    
15  Drawing fillets is difficult  We present two complementary approaches to rendering fillets:
16    using pre-rendered textures for the shapes and minimizing the polygon
17    use of the algorithm, and rendering the shape in full using polygons,
18    giving maximum flexibility to the shapes.
19  From the GPU perspective, the techniques presented  
20    For the polygonized algorithm, we show how edges of constant thickness
21    (even textured along the edge dimension) can be rendered for
22    2D shapes which are the union of simpler shapes using the Z-buffer.
23    
24  None of the techniques presented are particularly novel, but applying  None of the techniques presented are particularly novel, but applying
25  them to the novel problem (rendering fillets) allows a goal-oriented  them to the novel problem (rendering fillets) allows a goal-oriented
# Line 36  this proposal covers the area of 2 1/2 D Line 29  this proposal covers the area of 2 1/2 D
29  comprehensively; this proposal is more concerned on vertex processing  comprehensively; this proposal is more concerned on vertex processing
30  and the other on fragment processing.  and the other on fragment processing.
31    
32    If we get our NV3X cards in time, we may also be able to implement
33    and demonstrate a filleting algorithm based on fragment programs,
34    in somewhat the same way as the torn viewport algorithm.
35    
36    Our current implementations are OpenGL1.3 with NV extensions but we
37    can easily rewrite them using Cg.
38    
39    --- Figures
40    
41    Fig.1. The basic premise of fillets in graph visualization.
42    a) An inherently ambiguous diagram, which can mean
43    either the structure in b) or c).
44    In d), the two conditions are shown by the conventional drawing
45    method of erasing the edge that goes behind something,
46    and in e) fillets are used. Fillets display the structure clearly.
47    [ boxline-ambiguity, ink-erase, edgeless ]
48    
49    Fig.2. The way alpha compositing can be used to render fillets
50    from pre-drawn images with minimal polygon budgets.
51    [ alphaimgs ]
52    
53    Fig.3. How vertex programs can be used to bend the connection
54    so that it both leaves and enters nodes at a certain location.
55    This is important for some of our user interfaces.
56    [ screenshot from fillets demo showing both wireframe and normal ]
57    
58    Fig.4. A more flexible algorithm for creating filleted shapes.
59    This algorithm has to create the shape from polygons instead
60    of prerendered textures.
61    
62    Fig.5. How edges of constant thickness and even of textures can be drawn
63    for the general polygonized shape using the Z buffer.
64    In this way, fillets starting from a node can be allowed to overlap.
65    This is an adaptation of the old Voronoi diagram hack for GPUs.
66    Note that because of the flexibility of GPUs, the actual appearance
67    of the polygons drawn need not depend at all on the Z coordinate.
68    
69    Fig.6. A random, badly laid out graph rendered using the polygonized
70    algorithm. To demonstrate the edge-drawing system, we have used a 1D
71    texture on the edge, creating two thin lines on the edges. The shapes
72    are unbroken.
73    
74    Fig.7. Of course, since we're bevelling inside, we *can*, if we want to,
75    also show the bevels using light. However, the angles of the bevels
76    seen in the image need not correspond at all to the actual angles
77    in the Z-buffer.
78    
79    
80    
81    
82    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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