next up previous
Next: Shading Up: Displaying Important Edges and Previous: Line Styles


Silhouette finding using specialized graphics hardware like OpenGL is simple to implement and not as dependent on ``clean'' models. However it is less flexible and does not allow the user to change line weight. The software methods we discussed are more complex and depend on ``clean'' models which must have shared vertices, otherwise internal boundaries can not be checked for silhouettes. However the software methods provide more flexibility and, potentially, better performance.

Table 1: Model information and timings, in seconds on 195Mhz R10k for naive and hierarchical silhouette extraction methods under an orthographic view.
Model Faces Edges Naive Gauss Num Sil
S Crank 24999 35842 .027 .0198 3873
L Crank 169999 254941 .165 .096 12469
Sphere 78804 117611 .082 .016 273

Table 2: Hierarchy method showing the number of edges stored at each level on a Gaussian sphere for 25k-polygon crank shaft model for non-overlapping and overlapping bins.
Level No Overlap Overlap
  12294 3138
1 4844 2221
2 5978 3569
3 4666 5943
4 9704 22615

Table 1 presents the information of two extreme cases. These cases are based on orthographic views. Under perspective projection some form of bounding volume hierarchy would have to be employed [29] to increase the efficiency. Both the simplified and the finely tessellated versions of the crank shaft model have many sharp features, while the sphere has very small dihedral angles.

The current implementation of the hierarchy method uses an icosahedron with four levels of subdivision which generates 1280 faces. On the sphere this method is extremely efficient. When using overlapping bins, all of the edges are stored in the leaf nodes. When using non-overlapping bins only 84% of the edges are in the leaf nodes and 2132 are on level zero. Table  2 shows the number of edges stored at every level of the hierarchy for non-overlapping and overlapping hierarchies. The overlapping method did a much better job, even on the simplified crank model.

Parallelizing the silhouette extraction with the rest of the rendering can cause the extraction time to be negligible. A separate thread can extract silhouettes while the polygons are being rendered to shade the model or initialize the Z buffer. This parallelization takes only three-thousands of a second for the sphere and five one-hundredths on the large crank shaft model. If you are using software visibility algorithms this technique would probably prove to be more effective.

next up previous
Next: Shading Up: Displaying Important Edges and Previous: Line Styles