260 likes | 363 Views
Real-Time Nonphotorealistic Rendering. Presented by Chris Wood. Lee Markosian et al. Introduction. Traditional research focus on photorealism Graphics conveys visual information Photorealism not always intended effect. Nonphotorealism. Convey “incompleteness” Ex. Architecture
E N D
Real-Time Nonphotorealistic Rendering Presented by Chris Wood Lee Markosian et al.
Introduction • Traditional research focus on photorealism • Graphics conveys visual information • Photorealism not always intended effect
Nonphotorealism • Convey “incompleteness” • Ex. Architecture • Allows Efficiency • Make viewer fill in the gaps • Another form of expression / art
Purpose • Traditional algorithms batch oriented • Markosian seek interactive nonphotorealistic rendering (NPR) method
Definitions • Silhouette Edge: Edge adjacent to one front-facing and one back-facing polygon • Border Edge: An edge adjacent to just one face • Front facing: closest polygon is front facing • Back facing: closest polygon is back facing
Economy of Line • “A great deal of information can be effectively conveyed by very few strokes” • Supporting ideas: • Rapid id of silhouette edges (SE) • Interframe coherence of SE • Modified Appel’s hidden-line algo.
Structure • Determine the silhouette curves in the model • Determine the visibility by modified Appel’s algorithm • Render silhouette and feature edges
Appel’s Algorithm • Quantitative Invisibility (QI) • Number of front-facing polygons between object point and camera • Find all silhouette edges • Use method (raytracing) to determine QI
Improving Appel’s Algorithm - Finding silhouettes • Exhaustively searching for silhouettes kills real-time goal • Instead randomly search a small fraction of edges to find silhouette edges • Trace out silhouette curve once a silhouette edge is found
Improving Appel’s Algorithm - Finding silhouettes • For small camera / position changes: • Check all silhouette edges in previous frame • Select fraction of SE in previous frame, and search vicinity • Stop search when • 1) Silhouette Edge found • 2) #Edges traversed exceeds preset bound
Improving Appel’s Algorithm- Silhouettes / Cusps • Redefine QI: # layers of surface (front/back facing) obscuring a point • Curve only changes at cusp
Improving Appel’s Algorithm- Silhouettes / Cusps • Cusp vertex: • The vertex is adjacent to exactly 2 SE’s, one front and one back – facing • Adjacent to > 2 SE • Adjacent to border edge
Improving Appel’s Algorithm- Silhouettes / Cusps • Need only test for QI changes at cusp vertices
Improving Appel’s Algorithm- Avoid Ray Tests • Any edge that touches the 2D bounding box is visible • Propagate visibility through cluster of SE’s
Improving Appel’s Algorithm- Avoid Ray Tests • Markosian et al. switch order of Appel’s algorithm • New process: • Given some distinguished point on each cluster, assign QI to remaining points in cluster • Then perform ray test for given point
Improving Appel’s Algorithm- Avoid Ray Tests • Step 1 – for each cluster • Define a base point b infinitesimally close to one of its vertices • Calculate offsets from b for all other points of the cluster • Record the minimum QI, m, encountered from search
Improving Appel’s Algorithm- Avoid Ray Tests • If m < 0 (relative to b), add –m to b • If odd b, cluster is entirely occluded • Correct the relative QI for edge intersections from different clusters • N QI for occluding edge • M QI for occluded edge • If m < n, increment base QI of occluded edge by (n-m)
Improving Appel’s Algorithm - Walking • Determining occlusions • Disregard totally occluded silhouette curves • Disregard curves which touch the image space box B • Not entirely enclosed
Improving Appel’s Algorithm- Implementation • Loutrel’s algorithm for projecting silhouette edges onto image space • O(k log k) • SE scan conversion – O(k2)
Rendering • Project World-lines onto film plane • Render line using following techniques: • Draw lines directly (vary color / width) • “Artistically” perturbed strokes (adding offsets to the line) • Texture map strokes which follow shape of line
Rendering- Line Offsets • Define curve: • v is a vector offset • v can be computed at run-time or stored in a look-up table
Rendering- Texture Mapping • Textures correspond to brush strokes • Perpendicular strokes at seems • Width varies with lighting
Shading • Strokes particles are placed evenly across surface in world space • Slanted regions have high density strokes, having a darker tone
Performance • 200 MHz Sun Ultra 2 Model 2200 • Creator 3D graphics • Not so fine print (pen-like)
Questions? • What does this gain us?