Download presentation
Presentation is loading. Please wait.
Published byRoderick Perry Modified over 9 years ago
1
Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael Cohen Microsoft Research Michael Cohen Microsoft Research
2
Silhouette Edges Highlight detailHighlight detail Technical IllustrationsTechnical Illustrations
3
Silhouette Edges Highlight detailHighlight detail Technical IllustrationsTechnical Illustrations
4
Silhouette Edges Information with few strokesInformation with few strokes Non-photorealistic renderingNon-photorealistic rendering
5
Definitions Scene : Collection of oriented polygonsScene : Collection of oriented polygons Silhouette edge : Boundary between adjacent front facing and back facing polygonSilhouette edge : Boundary between adjacent front facing and back facing polygon
6
Find all silhouette edgesFind all silhouette edges Solve the partial visibility problem to render only non-occluded parts of silhouette edges Rendering Silhouette Edges
7
Previous Work Hidden line removalHidden line removal Markosian et. al. Siggraph 1997Markosian et. al. Siggraph 1997 – Trace out silhouette curves – Visibility using sweep method in image space Rossignac et. al. Eurographics Hardware 1992Rossignac et. al. Eurographics Hardware 1992 – Polygons and wireframe Gooch I3DG 1999Gooch I3DG 1999 Hidden line removalHidden line removal Markosian et. al. Siggraph 1997Markosian et. al. Siggraph 1997 – Trace out silhouette curves – Visibility using sweep method in image space Rossignac et. al. Eurographics Hardware 1992Rossignac et. al. Eurographics Hardware 1992 – Polygons and wireframe Gooch I3DG 1999Gooch I3DG 1999
8
Previous Methods Object PrecisionObject Precision Pre-processing or Batch orientedPre-processing or Batch oriented Need connectivity informationNeed connectivity information For static scenesFor static scenes Two primitives, polygons + edgesTwo primitives, polygons + edges Object PrecisionObject Precision Pre-processing or Batch orientedPre-processing or Batch oriented Need connectivity informationNeed connectivity information For static scenesFor static scenes Two primitives, polygons + edgesTwo primitives, polygons + edges
9
Goal Real-time performance using graphics hardwareReal-time performance using graphics hardware No pre-processing (Dynamic scenes)No pre-processing (Dynamic scenes) No adjacency information (Changing topology)No adjacency information (Changing topology) Single primitive (Polygons)Single primitive (Polygons) Image precisionImage precision Real-time performance using graphics hardwareReal-time performance using graphics hardware No pre-processing (Dynamic scenes)No pre-processing (Dynamic scenes) No adjacency information (Changing topology)No adjacency information (Changing topology) Single primitive (Polygons)Single primitive (Polygons) Image precisionImage precision
10
Video
11
Basic Approach First (Visible) Polygon Layer
12
Basic Approach First (Visible) Polygon Layer Second Polygon Layer
13
Basic Approach First (Visible) Polygon Layer Second Polygon Layer Intersection = Silhouettes
14
Basic Approach : Polygonal Surfaces Compute the two nearest layers from cameraCompute the two nearest layers from camera – First layer : subset of front facing polygons – Second layer : subset of back facing polygons Compute intersection in image spaceCompute intersection in image space Compute the two nearest layers from cameraCompute the two nearest layers from camera – First layer : subset of front facing polygons – Second layer : subset of back facing polygons Compute intersection in image spaceCompute intersection in image space
15
Basic Algorithm Draw white background Set depth function to ‘Less Than’ Render front facing polygons in white Set depth function ‘Equal To’ Draw back-facing polygons in black Repeat for a new viewpoint Draw white background Set depth function to ‘Less Than’ Render front facing polygons in white Set depth function ‘Equal To’ Draw back-facing polygons in black Repeat for a new viewpoint
16
Basic Algorithm Draw white background Set depth function to ‘Less Than’ Render front facing polygons in white Set depth function ‘Equal To’ Draw back-facing polygons in black Repeat for a new viewpoint Draw white background Set depth function to ‘Less Than’ Render front facing polygons in white Set depth function ‘Equal To’ Draw back-facing polygons in black Repeat for a new viewpoint ! Limited depth buffer precision, single pixel width
17
Image Precision Techniques 1. Back facing polygons as wireframes 2. Z-scaled translation 3. Fattened back facing polygons 1. Back facing polygons as wireframes 2. Z-scaled translation 3. Fattened back facing polygons
18
Wireframe Rendering Front facing polygons in whiteFront facing polygons in white Back facing polygons in wireframe in blackBack facing polygons in wireframe in black Front facing polygons in whiteFront facing polygons in white Back facing polygons in wireframe in blackBack facing polygons in wireframe in black FrontFaces BackFaces
19
Wireframe Rendering üChange wireframe thickness or color üUniform silhouette line width ! Gaps at neighboring polygons ! Two different primitives : line and polygon üChange wireframe thickness or color üUniform silhouette line width ! Gaps at neighboring polygons ! Two different primitives : line and polygon
20
Z-scaled Translation Camera Front-facing Polygon Back-facing Polygon
21
Z-scaled Translation Projection width of visible part of back-face depends on translation Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
22
Z-scaled Translation Projection width of visible part of back-face depends on translation Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
23
Z-scaled Translation Projection width of visible part of back-face depends on translation Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
24
Z-scaled Translation Projection width of visible part of back-face depends on translation Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
25
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
26
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
27
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
28
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
29
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
30
Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge
31
Z-scaled Translation ! Projection width of visible part depends on dihedral angle Translation F Camera F B Part of back-face visible
32
Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon
33
Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible
34
Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible
35
Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible
36
Fattened Backfacing Polygons ü Fattening is dependent only on the orientation of back facing polygon Part of fattened backface visible FB F and B at different orientations Camera
37
Fattening Process Identify back facing polygon
38
Fattening Process Identify back facing polygon
39
Fattening Process Fatten by pushing the edges outwards
40
Fattening Process Fatten by pushing the edges outwards
41
Fattening Process Fatten by pushing the edges outwards
42
Fattening Process Fatten by pushing the edges outwards
43
Fattening Process Fatten by pushing the edges outwards Create a triangle fan
44
Fattening Process Fatten by pushing the edges outwards Create a triangle fan
45
Fattening Process Fatten by pushing the edges outwards Create a triangle fan
46
Fattening Process Fatten by pushing the edges outwards Create a triangle fan
47
Fattening Process Fatten by pushing the edges outwards Create a triangle fan
48
Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan
49
Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan
50
Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan
51
üUniform width silhouette edges Fattening dependent onFattening dependent on – Orientation of the polygon wrt camera – Orientation of the edge – Distance of the edge from camera ! Polygon vertices move as camera moves ! Creates more triangles üUniform width silhouette edges Fattening dependent onFattening dependent on – Orientation of the polygon wrt camera – Orientation of the edge – Distance of the edge from camera ! Polygon vertices move as camera moves ! Creates more triangles Fattened Backfacing Polygons
52
Charcoal Style Rendering Fatten frontfacing polygons seen almost edge-onFatten frontfacing polygons seen almost edge-on Fattened part appears in front of original polygonsFattened part appears in front of original polygons Simple lighting model for fattened polygonsSimple lighting model for fattened polygons Fatten frontfacing polygons seen almost edge-onFatten frontfacing polygons seen almost edge-on Fattened part appears in front of original polygonsFattened part appears in front of original polygons Simple lighting model for fattened polygonsSimple lighting model for fattened polygons
53
Demonstration
54
Advantages No pre-processingNo pre-processing No adjacency informationNo adjacency information Robust and general purposeRobust and general purpose Easy to implement using traditional hardwareEasy to implement using traditional hardware Dynamic scenes, changing topology, LODDynamic scenes, changing topology, LOD Interesting effectsInteresting effects Models in other representationsModels in other representations No pre-processingNo pre-processing No adjacency informationNo adjacency information Robust and general purposeRobust and general purpose Easy to implement using traditional hardwareEasy to implement using traditional hardware Dynamic scenes, changing topology, LODDynamic scenes, changing topology, LOD Interesting effectsInteresting effects Models in other representationsModels in other representations
55
Modifications Different objects with colored silhouettesDifferent objects with colored silhouettes Texture mapped silhouettesTexture mapped silhouettes Distance from viewer, light effectsDistance from viewer, light effects Shaded or Texture mapped front polygonsShaded or Texture mapped front polygons Intersecting polygonsIntersecting polygons Different objects with colored silhouettesDifferent objects with colored silhouettes Texture mapped silhouettesTexture mapped silhouettes Distance from viewer, light effectsDistance from viewer, light effects Shaded or Texture mapped front polygonsShaded or Texture mapped front polygons Intersecting polygonsIntersecting polygons
56
Issues Complete scene traversal necessaryComplete scene traversal necessary Density of silhouette edges for distant objectsDensity of silhouette edges for distant objects Inconsistent face normalsInconsistent face normals Complete scene traversal necessaryComplete scene traversal necessary Density of silhouette edges for distant objectsDensity of silhouette edges for distant objects Inconsistent face normalsInconsistent face normals
57
Performance Rendering cost increased by a factor of twoRendering cost increased by a factor of two Fattening method, six triangles for each backfacing triangleFattening method, six triangles for each backfacing triangle OpenGL with SGI Indigo2 MaxImpact timings:OpenGL with SGI Indigo2 MaxImpact timings: – Venus model, ~6K triangles, 66fps – Wireframe: 40 fps – Z-scaled translation: 50 fps – Fattened backfaces: 11.5 fps Rendering cost increased by a factor of twoRendering cost increased by a factor of two Fattening method, six triangles for each backfacing triangleFattening method, six triangles for each backfacing triangle OpenGL with SGI Indigo2 MaxImpact timings:OpenGL with SGI Indigo2 MaxImpact timings: – Venus model, ~6K triangles, 66fps – Wireframe: 40 fps – Z-scaled translation: 50 fps – Fattened backfaces: 11.5 fps
58
Acknowledgements NSF STCNSF STC Microsoft Research Graphics groupMicrosoft Research Graphics group Rick Szeliski, John Snyder Link FellowshipLink Fellowship Geometric Models :Geometric Models : Electric Boat Stanford University VideoVideo Matt Cutts, Todd Gaul NSF STCNSF STC Microsoft Research Graphics groupMicrosoft Research Graphics group Rick Szeliski, John Snyder Link FellowshipLink Fellowship Geometric Models :Geometric Models : Electric Boat Stanford University VideoVideo Matt Cutts, Todd Gaul
59
Summary Real-time silhouette renderingReal-time silhouette rendering – Update depth buffer – translate or fatten backfacing polygons Applicable to dynamic scenes, changing topologyApplicable to dynamic scenes, changing topology Traditional graphics pipelineTraditional graphics pipeline http://www.cs.unc.edu/ ~ raskar/Sil/ Real-time silhouette renderingReal-time silhouette rendering – Update depth buffer – translate or fatten backfacing polygons Applicable to dynamic scenes, changing topologyApplicable to dynamic scenes, changing topology Traditional graphics pipelineTraditional graphics pipeline http://www.cs.unc.edu/ ~ raskar/Sil/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.