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

Slides:



Advertisements
Similar presentations
Saito, T. and Takahashi, T. Comprehensible Rendering of 3-D Shapes Proc. of SIGGRAPH '90 Genesis of Image Space NPR.
Advertisements

CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Non-Photorealistic Rendering FORMS. Mesh (~170) Parametric (~16) Implicit/CSG (~9) Volumetric (~28) 3D Object Representation in NPR Point Cloud (~4)
3D Graphics Rendering and Terrain Modeling
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
Non-Photorealistic Rendering: Toon Shading David Luebke University of Virginia.
Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert.
Discontinuity Edge Overdraw
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
1 Image-Based Visual Hulls Paper by Wojciech Matusik, Chris Buehler, Ramesh Raskar, Steven J. Gortler and Leonard McMillan [
Shadow Algorithms Gerald Matzka Computer Science Seminar.
Graphics Systems I-Chen Lin’s CG slides, Doug James’s CG slides Angel, Interactive Computer Graphics, Chap 1 Introduction to Graphics Pipeline.
Vertices and Fragments III Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
CSCE 641: Computer Graphics Image-based Rendering Jinxiang Chai.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie Non-Photorealistic Rendering Techniques for a Game Engine COMP 238 Final Project.
Painterly Rendering for Animation Barbara J. Meier Walt Disney Feature Animation SIGGRAPH 96.
Non-photorealistic Rendering Pablo Picasso - The Bird Cage No electrons were harmed during the production of this presentation.
Week 14 - Wednesday.  What did we talk about last time?  Collision handling  Collision detection  Collision determination  Collision response  BSPs.
Computer Graphics Shadows
Hidden Surface Removal
Computer-Generated Pen- and-Ink Illustration Georges Winkenbach, David H. Salesin.
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
An Application of Tetrahedrisation to From-Point Visibility Honours Project Proposal Gerard Ryan and Brendon Miszka
Cel Shading Jason McCollum. Overview Nonphotorealistic Rendering (NPR) Cel-shading Concepts Demonstration.
Hidden Surface Removal 1.  Suppose that we have the polyhedron which has 3 totally visible surfaces, 4 totally invisible/hidden surfaces, and 1 partially.
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Non-Photorealistic Rendering: Toon Shading David Luebke University of Virginia.
Implementation II.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
컴퓨터 그래픽스 Real-time Rendering 1. Introduction.
Computer Graphics I, Fall 2010 Implementation II.
Non-Photorealistic Rendering FORMS. Model dependent Threshold dependent View dependent Outline form of the object Interior form of the object Boundary.
Real Time Nonphotorealistic Rendering. How to achieve real time NPR? Economy of line: present a lot of information with very few strokes. Silhouettes.
Painterly Rendering for Animation Introduction speaks of focus and detail –Small brush strokes focus and provide detail –Large strokes are abstract and.
Non-Photorealistic Rendering CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Non-Photorealistic Rendering FORMS. Model dependent Threshold dependent View dependent Outline form of the object Interior form of the object Boundary.
Computer Graphics One of the central components of three-dimensional graphics has been a basic system that renders objects represented by a set of polygons.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
Graphics Pipeline Bringing it all together. Implementation The goal of computer graphics is to take the data out of computer memory and put it up on the.
Spring 2006 G5BAGR – Advanced Computer Graphics
Rendering Pipeline Fall, 2015.
- Introduction - Graphics Pipeline
Computer Graphics Implementation II
Week 14 - Wednesday CS361.
Week 12 - Thursday CS361.
CSC418 Computer Graphics Back Faces Visibility Algorithms.
3D Graphics Rendering PPT By Ricardo Veguilla.
Stylized Environmental Rendering
CSCE 441: Computer Graphics Hidden Surface Removal
3D Rendering Pipeline Hidden Surface Removal 3D Primitives
Cel Shading Jason McCollum.
Implementation II Ed Angel Professor Emeritus of Computer Science
Real-time Rendering Shadow Maps
Visibility Computations
CSCE 441: Computer Graphics Hidden Surface Removal (Cont.)
Implementation II Ed Angel Professor Emeritus of Computer Science
Artistic Rendering Final Project Initial Proposal
Presentation transcript:

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

Silhouette Edges Highlight detailHighlight detail Technical IllustrationsTechnical Illustrations

Silhouette Edges Highlight detailHighlight detail Technical IllustrationsTechnical Illustrations

Silhouette Edges Information with few strokesInformation with few strokes Non-photorealistic renderingNon-photorealistic rendering

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

Find all silhouette edgesFind all silhouette edges Solve the partial visibility problem to render only non-occluded parts of silhouette edges Rendering Silhouette Edges

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

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

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

Video

Basic Approach First (Visible) Polygon Layer

Basic Approach First (Visible) Polygon Layer Second Polygon Layer

Basic Approach First (Visible) Polygon Layer Second Polygon Layer Intersection = Silhouettes

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

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

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

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

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

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

Z-scaled Translation Camera Front-facing Polygon Back-facing Polygon

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

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

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

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

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation using Scaling Camera Front-facing Back-facing Part of back-face visible and seen as silhouette edge

Z-scaled Translation ! Projection width of visible part depends on dihedral angle Translation F Camera F B Part of back-face visible

Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon

Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible

Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible

Fattened Backfacing Polygons Camera Front-facing Polygon Back-facing Polygon Part of fattened backface visible

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

Fattening Process Identify back facing polygon

Fattening Process Identify back facing polygon

Fattening Process Fatten by pushing the edges outwards

Fattening Process Fatten by pushing the edges outwards

Fattening Process Fatten by pushing the edges outwards

Fattening Process Fatten by pushing the edges outwards

Fattening Process Fatten by pushing the edges outwards Create a triangle fan

Fattening Process Fatten by pushing the edges outwards Create a triangle fan

Fattening Process Fatten by pushing the edges outwards Create a triangle fan

Fattening Process Fatten by pushing the edges outwards Create a triangle fan

Fattening Process Fatten by pushing the edges outwards Create a triangle fan

Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan

Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan

Fattening Process. Fatten by pushing the edges outwards Fattened part appears as silhouette Create a triangle fan

ü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

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

Demonstration

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

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

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

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

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

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 ~ 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 ~ raskar/Sil/