A Developer's Guide to Silhouette Algorithms for Polygonal Models

Silhouettes play an important role in shape recognition because they provide one of the main cues for figure-to-ground distinction. However, since silhouettes are view dependent, they need to be determined for every frame of an animation. Finding an efficient way to accomplish this is nontrivial. Indeed, a variety of different algorithms exist that compute silhouettes for geometric objects. This article provides a guideline for developers who need to choose between one of these algorithms for his or her application. We restrict ourselves to discussing only those algorithms that apply to polygonal models, because these are the most commonly used object representations in modern computer graphics. Thus, we can use all algorithms discussed to take a polygonal mesh as input and compute the visible part of the silhouette as output. Some algorithms, however, can also help compute the silhouette only, without additional visibility culling. The silhouette's representation might vary depending on the algorithm class - that is, the silhouette might take the form of a pixel matrix or a set of analytic stroke descriptions.

[1]  Jason L. Mitchell,et al.  Non-Photorealistic Rendering with Pixel and Vertex Shaders , 2004 .

[2]  Aaron Hertzmann,et al.  Illustrating smooth surfaces , 2000, SIGGRAPH.

[3]  Lee Markosian,et al.  Artistic silhouettes: a hybrid approach , 2000, NPAR '00.

[4]  Michael T. Goodrich,et al.  Efficient perspective-accurate silhouette computation and applications , 2001, SCG '01.

[5]  Peter-Pike J. Sloan,et al.  Interactive technical illustration , 1999, SI3D.

[6]  Jarek Rossignac,et al.  Hidden contours on a frame-buffer , 1992, Eurographics Workshop on Graphics Hardware.

[7]  Michael T. Goodrich,et al.  Efficient perspective-accurate silhouette computation , 1999, SCG '99.

[8]  Arthur Appel,et al.  The notion of quantitative invisibility and the machine rendering of solids , 1967, ACM National Conference.

[9]  Takafumi Saito,et al.  Comprehensible rendering of 3-D shapes , 1990, SIGGRAPH.

[10]  Gershon Elber,et al.  Output sensitive extraction of silhouettes from polygonal geometry , 1999, Proceedings. Seventh Pacific Conference on Computer Graphics and Applications (Cat. No.PR00293).

[11]  Aaron Hertzmann,et al.  Introduction to 3D Non-Photorealistic Rendering: Silhouettes and Outlines , 1999 .

[12]  Tobias Isenberg,et al.  Stylizing Silhouettes at Interactive Rates: 
 From Silhouette Edges to Silhouette Strokes , 2002, Comput. Graph. Forum.

[13]  Jörn Loviscach Rendering Artistic Line Drawings Using Off-the-Shelf 3-D Software , 2002, Eurographics.

[14]  Mario Costa Sousa,et al.  The edge buffer: a data structure for easy silhouette rendering , 2000, NPAR '00.

[15]  Lee Markosian,et al.  Real-time nonphotorealistic rendering , 1997, SIGGRAPH.

[16]  Jason L. Mitchell,et al.  Real-time image-space outlining for non-photorealistic rendering , 2002, SIGGRAPH '02.

[17]  Oliver Deussen,et al.  Computer-generated pen-and-ink illustration of trees , 2000, SIGGRAPH.

[18]  Ramesh Raskar Hardware support for non-photorealistic rendering , 2001, HWWS '01.

[19]  Pedro V. Sander,et al.  Silhouette clipping , 2000, SIGGRAPH.

[20]  E SutherlandIvan,et al.  A Characterization of Ten Hidden-Surface Algorithms , 1974 .

[21]  Gershon Elber,et al.  Hidden curve removal for free form surfaces , 1990, SIGGRAPH.

[22]  Ramesh Raskar,et al.  Image precision silhouette edges , 1999, SI3D.