Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael.

Similar presentations


Presentation on theme: "Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael."— Presentation transcript:

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/


Download ppt "Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael."

Similar presentations


Ads by Google