Discontinuity Edge Discontinuity Edge Overdraw Overdraw Pedro V. Sander Pedro V. Sander 1 1 Hugues Hoppe Hugues Hoppe 2 2 John Snyder John Snyder 2 2 Steven J. Gortler Steven J. Gortler 1 1 2001 ACM Symposium on Interactive 3D Graphics 2001 ACM Symposium on Interactive 3D Graphics Harvard University Harvard University 2 2 Microsoft Researc Microsoft Researc
35
Embed
Discontinuity Edge Overdraw Pedro V. Sander 1 Hugues Hoppe 2 John Snyder 2 Steven J. Gortler 1 Pedro V. Sander 1 Hugues Hoppe 2 John Snyder 2 Steven J.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
2001 ACM Symposium on Interactive 3D Graphics2001 ACM Symposium on Interactive 3D Graphics
1 1 Harvard UniversityHarvard University 2 2 Microsoft ResearchMicrosoft Research
1)1) Within triangles interiorsWithin triangles interiors(solved by mipmapping)(solved by mipmapping)
2)2) Among trianglesAmong triangles(‘small object problem’)(‘small object problem’)
3)3) At triangle edgesAt triangle edges(‘crawling jaggies’)(‘crawling jaggies’)
1)1) Within triangles interiorsWithin triangles interiors(solved by mipmapping)(solved by mipmapping)
2)2) Among trianglesAmong triangles(‘small object problem’)(‘small object problem’)
3)3) At triangle edgesAt triangle edges(‘crawling jaggies’)(‘crawling jaggies’)
Aliasing in meshesAliasing in meshesAliasing in meshesAliasing in meshes
Our approach: only attack jaggiesOur approach: only attack jaggiesOur approach: only attack jaggiesOur approach: only attack jaggies Basic algorithm:Basic algorithm:
Render mesh.Render mesh. Identify ‘troublesome’ edges.Identify ‘troublesome’ edges. Render troublesome edges as antialiased lines.Render troublesome edges as antialiased lines.
In the limit, solves all aliasing artifacts.In the limit, solves all aliasing artifacts. However, higher rendering cost. However, higher rendering cost.
e.g. 2x2:e.g. 2x2:
In the limit, solves all aliasing artifacts.In the limit, solves all aliasing artifacts. However, higher rendering cost. However, higher rendering cost.
Reduces silhouette extraction cost by half.Reduces silhouette extraction cost by half.
Shading the edgesShading the edgesShading the edgesShading the edges
Silhouette edge: Silhouette edge: Use the frontface shading attributes.Use the frontface shading attributes.
Frontfacing edge:Frontfacing edge:Combine between the two face Combine between the two face shading attributes (avoids popping). shading attributes (avoids popping).
Silhouette edge: Silhouette edge: Use the frontface shading attributes.Use the frontface shading attributes.
Frontfacing edge:Frontfacing edge:Combine between the two face Combine between the two face shading attributes (avoids popping). shading attributes (avoids popping).
(once for each face’s attributes).(once for each face’s attributes). Requires rendering more edges.Requires rendering more edges. Causes slight discontinuity at Causes slight discontinuity at ββ===0.5=0.5
Two approaches:Two approaches:
Edge blended-drawEdge blended-draw Blend face attributes and render once.Blend face attributes and render once. Catches occasional highlight.Catches occasional highlight. Requires multitexturing.Requires multitexturing.
(once for each face’s attributes).(once for each face’s attributes). Requires rendering more edges.Requires rendering more edges. Causes slight discontinuity at Causes slight discontinuity at ββ===0.5=0.5
Drawbacks of combiningDrawbacks of combiningDrawbacks of combiningDrawbacks of combining
Slower.Slower.
Blurs discontinuities too much.Blurs discontinuities too much.
Slower.Slower.
Blurs discontinuities too much.Blurs discontinuities too much.
For each edge, determine a default face. For each edge, determine a default face. Consistent through sharp edge paths.Consistent through sharp edge paths.
For each edge, determine a default face. For each edge, determine a default face. Consistent through sharp edge paths.Consistent through sharp edge paths.
Final algorithm (Preprocess)Final algorithm (Preprocess)Final algorithm (Preprocess)Final algorithm (Preprocess)
Collect sharp edges in mesh.Collect sharp edges in mesh. Assign them consistent orientation. Assign them consistent orientation. Construct silhouette extraction treeConstruct silhouette extraction tree
(exclude sharp and concave edges).(exclude sharp and concave edges).
Collect sharp edges in mesh.Collect sharp edges in mesh. Assign them consistent orientation. Assign them consistent orientation. Construct silhouette extraction treeConstruct silhouette extraction tree
(exclude sharp and concave edges).(exclude sharp and concave edges).
Final algorithm (Runtime)Final algorithm (Runtime)Final algorithm (Runtime)Final algorithm (Runtime)
render mesh;render mesh;extract silhouette;extract silhouette;forfor silhouette edge silhouette edge ee
render render ee using frontface shading attributes using frontface shading attributes forfor sharp edge sharp edge ee
render render ee using default face shading using default face shading attributes attributes elseelse
render render ee by combining shading attributes by combining shading attributes
Final algorithm Final algorithm (modifications for sorting)(modifications for sorting)
Final algorithm Final algorithm (modifications for sorting)(modifications for sorting)
Render sharp edges for which Render sharp edges for which 0.1 < 0.1 < e.e.ββ < 0.9 < 0.9
Place other sharp edges in a set S.Place other sharp edges in a set S. Place silhouette edges in Place silhouette edges in SS.. Sort Sort SS back-to-front. back-to-front. Render edges in Render edges in S.S.
Render sharp edges for which Render sharp edges for which 0.1 < 0.1 < e.e.ββ < 0.9 < 0.9
Place other sharp edges in a set S.Place other sharp edges in a set S. Place silhouette edges in Place silhouette edges in SS.. Sort Sort SS back-to-front. back-to-front. Render edges in Render edges in S.S.