next up previous
Next: Discussion Up: Displaying Important Edges and Previous: Software Methods

Line Styles

  Line width can appear to change by either shading the lines based on the surface orientation, or by using OpenGL 1D texture mapping hardware to shade lines. Using a 1D texture map, there can be a relationship between the surface and a distance to a light in the scene.

Fat boundary lines can be drawn with either the software or hardware methods. These lines are drawn after the rest of the model has been drawn (shading, creases, silhouettes). While the earlier phases are drawn, they set a stencil bit, indicating that the given pixel has been draw for this frame. Finally, the boundary silhouettes are drawn over again with wider lines. In hardware this requires a full traversal of the front or back faces, while using software extraction algorithms only require a traversal of the silhouette edges which have been previously computed. All of these algorithms are more efficient than the methods mentioned in the OpenGL course [1] because it required four rendering passes while these algorithms require only one extra pass, and that pass may only be of the silhouette edges.


  
Figure 9: All creases are drawn in white (Left), and then all of the silhouette lines are drawn in black (Right), overlapping the creases.


Creases are extracted independent of the view and are drawn as white lines. After adding shading and silhouettes, only the creases that are connected to two front facing faces, and are not already silhouettes, are visible. To emulate the look of illustrations the creases need to be drawn with the same thickness as the silhouettes, as shown in Figure 9.

One problem when rendering rasterized wide lines is the ``gaps'' where the lines do not overlap. A solution to this is to render the end of the lines with large points, effectively filling in the gaps. There is much less of a performance loss with the software extraction methods, since they only need to redraw the actual silhouettes, not the entire model.


next up previous
Next: Discussion Up: Displaying Important Edges and Previous: Software Methods