260 likes | 381 Views
Non-Photorealistic Rendering FORMS. Threshold dependent. Model dependent. View dependent. Silhouette. Boundary. Outline form of the object. X. Crease (+ other discontinuities). Crease (+ other discontinuities). Interior form of the object. X. Silhouette Algorithms.
E N D
Threshold dependent Model dependent View dependent Silhouette Boundary Outline form of the object X Crease (+ other discontinuities) Crease (+ other discontinuities) Interior form of the object X
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 1. Brute Force Iterate through each edge in a polygonal model and test whether each edge is a silhouette edge
N edge list N polygon list N1 N2 V • For every frame : • { • For every edge e : • { • If (eN1.dot (V) < 0 && eN2.dot(V) >= 0 ) || • (eN2.dot (V) < 0 && eN1.dot(V) >= 0 ) • eis_silhouette = TRUE • else • eis_silhouette = FALSE • } • }
N edge list N polygon list N1 N2 V • For every frame : • { • For every edge e : • { • If ( eN1.dot (V) * eN2.dot(V) ) <= 0 • eis_silhouette = TRUE • else • eis_silhouette = FALSE • } • }
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 2. Edge Buffer Using the “Edge Buffer” data structure of Buchanan and Sousa to iterate over facets instead of edges. Buchanan, J. W. and Sousa, M. C.The edge buffer: A data structure for easy silhouette renderingProc. of NPAR '00
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 3. Probabilistic An edge tracing method where a finite number of “seed” edges are chosen of reach viewpoint based on a measure of the likelihood that the “seed” edges are silhouettes. Markosian, L., Kowalski, M. A., Trychin, S. J., Bourdev, L. D., Goldstein, D., and Hughes, J. F..Real-Time Nonphotorealistic Rendering.Proc. of SIGGRAPH '97, pp. 415--420.
1997Markosian et alReal-Time Nonphotorealistic RenderingSIGGRAPH • A small number of edges are chosen based on the probability that they are silhouette edges: • Edges with higher dihedral angles • Silhouette edges from the previous frame • …then tested to see if they are silhouette edges. • When a silhouette edge is found, its adjacent edges are tested to see if any of these edges is also a silhouette edge.
Line Drawing of 3D Models 1979 Appel et al The haloed line effect for hidden line elimination SIGGRAPH 1982Roth Ray Casting for Modeling Solids Computer Graphics and Image Processing 1987Wyvill et al Sketches by Ray Tracing Computer Graphics International 1987Sasada Drawing Natural Scenery by Computer Graphics Computer-Aided Design 1988Veenstra and Ahuja Line drawings of octree-represented objects ACM Transactions on Graphics 1997Markosian et al Real-Time Nonphotorealistic Rendering SIGGRAPH
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 4. Gauss Map Hierarchy The angles of arcs between front and back facing polygons are stored in a tree structure 2 papers (1999)
1999Benichou and ElberOutput sensitive extraction of silhouettes from polygonal geometryPacific Graphics
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 5. Normal Cone Hierarchy Polygon normals are grouped into cones and these cones are stored in a tree structure 4 papers (2000, 2001)
2001Johnson and CohenSpatialized normal cone hierarchiesACM Symposium on Interactive 3D Graphics The cone encompasses the range of normals and bounds the geometry The view cone starts at the eye and encloses the bounding sphere.
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 6. Implicit Surfaces A silhouette tracing method where points on the silhouette curve are found using ”ray tests” Bremer, D.J. and Hughes, J. F.Rapid approximate silhouette rendering of implicit surfacesProc. of Implicit Surfaces '98. pp. 155--164
Silhouette Algorithms • Object Space • Involve computations in 3D and produce a list of silhouette edges or curves for a given viewpoint • Brute Force • Edge Buffer • Probabilistic • Gauss Map Arc Hierarchy • Normal Cone Hierarchy • Implicit Surfaces • NURBS Surfaces • Image Space • involve image processing techniques • Two Pass Methods • Environment Map • One Pass Method • Model Augmentation • Depth Discontinuity Methods
Object Space 7. NURBS Surfaces Silhouette curves on a model are found by using a ”marching cube” algorithm to find surface patches which the silhouette curve passes through. Silhouette curves are then interpolated from the entry and exit points of the patch. Gooch, A.Interactive Non-Photorealistic Technical Illustration.MSc thesis Department of Computer Science, University of Utah, 1998.