Download presentation
Presentation is loading. Please wait.
Published byMorgan Cannon Modified over 9 years ago
1
Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert
2
Traditional Approach to Feature Rendering High memory requirements CPU based computations
3
Raskar’s Approach Adds a Primitive Shader stage to graphics pipeline. Employs a secondary Z- buffer Uniform line creation Color buffer updated Vertex and Primitive Assembly Primitive Shader Polygon Setup Pixel Shader Vertex Shader
4
Silhouettes Enlarge all back-facing polygons at degree
5
Silhouettes Continued For each polygon if /*front facing*/ color polygon white Else If /*back facing*/ enlarge color black flip normal Vertex and Primitive Assembly Primitive Shader Polygon Setup Pixel Shader Vertex Shader
6
Ridges All front-facing polygons are modified
7
Ridges And Silhouettes For each polygon if front-facing color white for each edge attach new quad at angle if back-facing Enlarge according to view Color black flip normal Vertex and Primitive Assembly Primitive Shader Polygon Setup Pixel Shader Vertex Shader
8
Valleys Uses a secondary buffer to “trap” quads to be rendered. New quads are added to every edge at angle . z1 z2
9
Valleys Continued For each front-facing polygon render the polygon if(less-than-test(z1)) Update color buffer Update z1 and z2 buffer for each edge of polygon render new black quad at angle if (between-test(z1,z2)) Update color buffer Pixel Shader Vertex and Primitive Assembly Primitive Shader Polygon Setup Vertex Shader
10
Intersections Usually created by imprecise conversions or processing Only rendered if they belong to front-facing polygon Rendered
11
Intersections Continued For each front-facing polygon render the polygon if(less-than-test(z1)) update color buffer else If (between-test(z1,z2)) update color buffer Pixel Shader Vertex and Primitive Assembly Primitive Shader Polygon Setup Vertex Shader
12
Issues When rendering ridges and valleys: If the dihedral angle between any two adjacent visible front-facing polygons is close to the ‘z-fighting’ becomes noticeable as new extensions and existing polygons are almost on the same plane
13
Issues When special features are wide, small gaps can occur. This rarely occurs unless lines are wider than 20 pixels When a ridge is also a silhouette, and is greater than or equal to 180˚, artifacts can appear unless both features are rendered in the same color.
14
Performance Additional z buffer is necessary New extensions must be tagged In-between test Vertex transformations increase by a factor of 2-5 New polygons generated on-chip
15
Possible extensions of Primitive Shader stage New extensions can be rendered with different effects for Non-photorealistic rendering. The silhouette can be made to appear smooth by rendering all back-facing polygons with curved PN triangles The superior polygonal approximation will produce higher quality rendering
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.