Silhouettes of geometric models (see Fig.1) are salient for many applications, including visualization [LE97] and shape analysis [BV95, Cro77]. The video describes a technique for efficient tracking of perspective-accurate silhouettes by reducing the problem to point location queries. Perspective-accurate silhouette computation is known to be difficult [KM96, KM98, KMGL96]. Note that silhouettes formed under perspective projection are significantly different from those under parallel projection and are more difficult to compute. Given a polyhedral model with well-defined normals, the polygons (facets) whose normals point away from the viewpoint are called back-facing. Similarly, normals of front-facing polygons point toward the viewpoint. An edge shared by a back-facing polygon and a front-facing polygon is said to be on the silhouette of the model. The silhouette of a geometric model is among its most significant visual features. It may be used to describe the shape of a model with only very few details of its geometry. It can also be used for computing the visible portions of a model as it forms the boundary between the visible front-facing and the hidden back-facing polygons. Silhouettes are also useful in shadow generation [Cro77], model simplification [LE97], collision detection [BV95], image registration [LSB95], and several other applications. The video presents an incremental algorithm for computing silhouettes of polyhedral models and updating them as the viewpoint changes. Most applications of interest exhibit coherence in silhouettes between successive computations as viewpoints change slowly. Our algorithm exploits this coherence to obtain fast updates of the silhouettes. Assume that we know the silhouette of a model from .a given view point. An edge ceases to be (resp., becomes) a silhouette edge if and only if it is shared by one front-facing and one back-facing polygon (resp., two polygons of the same facing), and exactly one of its adjacent polygons changes orientation. Thus, when the viewpoint is changed we are interested in finding such orientation-change events. We reduce this problem to a point-location query in a planar-map data structure.
[1]
F. Frances Yao,et al.
Computational Geometry
,
1991,
Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.
[2]
Dinesh Manocha,et al.
Hierarchical Back-Face Culling
,
1996
.
[3]
Dinesh Manocha,et al.
Hierarchical Visibility Culling for Spline Models
,
1995,
Graphics Interface.
[4]
Michael Ian Shamos,et al.
Computational geometry: an introduction
,
1985
.
[5]
David P. Luebke,et al.
View-dependent simplification of arbitrary polygonal environments
,
1997,
SIGGRAPH.
[6]
Michael T. Goodrich,et al.
Balanced aspect ratio trees: combining the advantages of k-d trees and octrees
,
1999,
SODA '99.
[7]
William J. Bouma,et al.
Velocity-based Collision Detection
,
1995
.
[8]
Franklin C. Crow,et al.
Shadow algorithms for computer graphics
,
1977,
SIGGRAPH.