Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert.

Similar presentations


Presentation on theme: "Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert."— Presentation transcript:

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


Download ppt "Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert."

Similar presentations


Ads by Google