Image Precision Silhouette Edges

Similar documents
Image Precision Silhouette Edges

CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination

CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination (Total: 100 marks)

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

CMSC 491A/691A Artistic Rendering. Announcements

CS559: Computer Graphics. Lecture 12: Antialiasing & Visibility Li Zhang Spring 2008

VISIBILITY & CULLING. Don t draw what you can t see. Thomas Larsson, Afshin Ameri DVA338, Spring 2018, MDH

Real-Time Non- Photorealistic Rendering

Pipeline Operations. CS 4620 Lecture 10

Hardware Support for Non-photorealistic Rendering

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz

3D Rasterization II COS 426

Computer Graphics. Shadows

Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms

3D Polygon Rendering. Many applications use rendering of 3D polygons with direct illumination

Previously... contour or image rendering in 2D

Rasterization Overview

Computer Graphics. Bing-Yu Chen National Taiwan University

Hardware Support for Non-photorealistic Rendering

TSBK03 Screen-Space Ambient Occlusion

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Today. CS-184: Computer Graphics. Lecture #10: Clipping and Hidden Surfaces. Clipping. Hidden Surface Removal

CS 498 VR. Lecture 18-4/4/18. go.illinois.edu/vrlect18

Hidden surface removal. Computer Graphics

Visible Surface Detection. (Chapt. 15 in FVD, Chapt. 13 in Hearn & Baker)

Introduction to Visualization and Computer Graphics

Pipeline Operations. CS 4620 Lecture 14

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

CS4620/5620: Lecture 14 Pipeline

White Paper. Solid Wireframe. February 2007 WP _v01

Computer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura

Adaptive Point Cloud Rendering

X 2 -Toon: An Extended X-Toon Shader

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling

Shadows in the graphics pipeline

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

CHAPTER 1 Graphics Systems and Models 3

Realtime 3D Computer Graphics Virtual Reality

Computer Graphics. Rendering. by Brian Wyvill University of Calgary. cpsc/enel P 1

Renderer Implementation: Basics and Clipping. Overview. Preliminaries. David Carr Virtual Environments, Fundamentals Spring 2005

Graphics and Interaction Rendering pipeline & object modelling

Computer Graphics I Lecture 11

Visibility. Tom Funkhouser COS 526, Fall Slides mostly by Frédo Durand

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Effectiveness of Silhouette Rendering Algorithms in Terrain Visualisation

View-Dependent Particles for Interactive Non-Photorealistic Rendering

Computer Graphics 10 - Shadows

Copyright 2010 DigiPen Institute of Technology and DigiPen (USA) Corporation. All rights reserved.

Point based Rendering

CS452/552; EE465/505. Clipping & Scan Conversion

3 Polygonal Modeling. Getting Started with Maya 103

Visibility and Occlusion Culling

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

9. Illumination and Shading

Hidden Surface Removal

Rendering approaches. 1.image-oriented. 2.object-oriented. foreach pixel... 3D rendering pipeline. foreach object...

Computer Graphics Shadow Algorithms

FROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU

Computer Graphics Fundamentals. Jon Macey

Advanced Real- Time Cel Shading Techniques in OpenGL Adam Hutchins Sean Kim

Non-Photo Realistic Rendering. Jian Huang

Geometric Features for Non-photorealistiic Rendering

CEng 477 Introduction to Computer Graphics Fall 2007

The Traditional Graphics Pipeline

CS 4620 Program 3: Pipeline

Reading. 18. Projections and Z-buffers. Required: Watt, Section , 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading:

Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

Surface shading: lights and rasterization. Computer Graphics CSE 167 Lecture 6

Overview. A real-time shadow approach for an Augmented Reality application using shadow volumes. Augmented Reality.

Computer Graphics Lecture 11

CS488. Visible-Surface Determination. Luc RENAMBOT

The Traditional Graphics Pipeline

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

Introduction to Computer Graphics with WebGL

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling

The University of Calgary

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1.

Models and Architectures

Non-photorealistic Rendering

Artistic Rendering of Function-based Shape Models


CS 428: Fall Introduction to. Polygon rendering: additional topics. Andrew Nealen, Rutgers, /14/2009 1

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Computergrafik. Matthias Zwicker. Herbst 2010

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

CS2401 COMPUTER GRAPHICS ANNA UNIV QUESTION BANK

Hermite Curves. Hermite curves. Interpolation versus approximation Hermite curve interpolates the control points Piecewise cubic polynomials

National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor

Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007

Hidden Surfaces II. Week 9, Mon Mar 15

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

3D Silhouette Rendering Algorithms using Vectorisation Technique from Kedah Topography Map

03 Vector Graphics. Multimedia Systems. 2D and 3D Graphics, Transformations

Volume Shadows Tutorial Nuclear / the Lab

Transcription:

Image Precision Silhouette Edges by Ramesh Raskar and Michael Cohen Presented at I3D 1999 Presented by Melanie Coggan

Outline Motivation Previous Work Method Results Conclusions

Outline Motivation Previous Work Method Results Conclusions

Motivation Conveys more detail Useful for technical diagrams Raskar and Cohen I3D Slides

Motivation Conveys more detail Useful for technical diagrams Raskar and Cohen I3D Slides

Motivation Non-Photorealistic Rendering Use fewer strokes

Outline Motivation Previous Work Method Results Conclusions

Sutherland with Sketchpad - Dmitry Shklyar http://www.cgnetworks.com/story_custom.php?story_id=1647&page=1 Previous Work Sutherland et al. 1974 Hidden line removal Markosian et al. 1997

Shaded Venus Lee Markosian http://graphics.cs.brown.edu/research/npr/home.html Previous Work Sutherland et al. 1974 Markosian et al. 1997 Probabilistic method Scene does not need to be traversed

Previous Work Zeleznik et al. 1996 Interface to highlight edges and boundaries Rossignac et al. 1992 Image precision / Wireframe J. Rossignac, M. van Emmerik Hidden Contours on a Framebuffer

Previous Work - Problems Adjacency information required Pre-processing or batch processes Static scenes Two types of primitives involved, polygons and edges

Outline Motivation Previous Work Method Results Conclusions

Goals Work with changing scenes no adjacency information Dynamic no pre-processing Real-time Single primitive - polygons

Algorithm Use only two sets of polygons P1: Completely visible from viewpoint; front-facing P2: Second layer from viewpoint; back-facing Original polygons and layer P1

Algorithm Use only two sets of polygons P1: Completely visible from viewpoint; front-facing P2: Second layer from viewpoint; back-facing Original polygons and layer P2

Algorithm Use only two sets of polygons Compute intersection of P1 and P2 Original polygons and silhouette

Implementation - basic Use a depth buffer Depth function f(d 1,d 2 ) Pixel with depth d 1 overwrites pixel with depth d 2 iff f(d 1,d 2 ) is true Very simple!

Pseudo-code Draw background with white colour Enable back face culling, set depth function to Less Than Render front facing polygons in white Enable front face culling, set depth function to Equal To Draw back facing polygons in black Repeat for a new viewpoint

Limitations Quantization and sampling Some pixels may be missed Silhouette edges at most one pixel wide

Modification 1 - Wireframe Render front facing polygons as before Back facing polygons Render in wireframe Set depth function to Less Than Or Equal Original polygons Back facing rendered in wireframe Silhouette Allows thicker silhouettes, no missing pixels

Advantages Visible edges with constant thickness Width and colour of wireframe may be modified according to distance/orientation from camera Raskar and Cohen Venus - Wireframe Technique http://www.cs.unc.edu/~raskar/sil/images/ venuswireframe.gif

Disadvantages Two types of primitives, polygons and lines Restrictions in rendering pipeline Gaps between silhouette edges of neighbouring polygon as line width increases

Modification 2 - Translation Render front facing polygons as before Back facing polygons Translate slightly towards camera Set depth function to Less Than Or Equal

Methods of translation Translate back-facing polygon by a fixed amount t Translate back-facing polygon by k*z (z-scaled) z: average distance from polygon to camera k: scaling factor API like glpolygonoffset() depends on z as well as orientation of polygon

z-scaled translation Can be achieved two ways Scale down model with respect to camera The closer the back-facing polygon, the shorter the translation distance Change the depth range of the view frustrum Move the near z-plane further back or vice-versa

Characteristics Large scaling factor smooth continuous silhouette edges Varying line widths: artistic? Looks good for small angles Depends on taste, context Raskar and Cohen - Venus - z-scaled Technique http://www.cs.unc.edu/~raskar/sil/images/venuszscaled.gif

Varying Line Width Silhouette depends on Viewer orientation Orientation of back face Orientation of front face Visible part of back-facing polygon depends both on V N F and V N B

Varying Line Width Can be either a feature or a problem Feature: simple translation is good! Problem: want uniform lines Need adjacency information to use translation Recall goals: we want to avoid this!

Modification 3 - Fattening View-dependant modification of back-facing polygons Draws constant width silhouette edges Assumes convex polygons

Fattening Method Edges of back-facing polygons pushed outwards Proportional to z / (V N B ) z: distance from midpoint of the edge to the camera Depends only on orientation of back face

Fattening Method Actually also depends on orientation of the edges of the back face Raskar and Cohen Image Precision Silhouette Edges

Fattening Method E is an edge vector and cos( ) = V E Raskar and Cohen Image Precision Silhouette Edges

Fattening Method E is an edge vector and cos( ) = V E Fattening for E is proportional to z*sin( )/(V N B ) Raskar and Cohen Image Precision Silhouette Edges

Fattening Method E is an edge vector and cos( ) = V E Fattening for E is proportional to z*sin( )/(V N B ) Direction is E N B Raskar and Cohen Image Precision Silhouette Edges

Fattening Method E is an edge vector and cos( ) = V E Fattening for E is proportional to z*sin( )/(V N B ) Direction is E N B z can be approximated once per polygon Raskar and Cohen Image Precision Silhouette Edges

Fattening Method n-sided polygon gets 2n extra vertices Vertices are connected: triangulation Triangle fan Raskar and Cohen Image Precision Silhouette Edges

Fattening Method Fattening at run-time involves shifting the vertices Raskar and Cohen Image Precision Silhouette Edges

Results Better results than wireframe Only polygons involved No gaps between edges of neighbouring polygons No adjacency information needed Raskar and Cohen - Venus - Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/venusfattened.gif

Results Use anti-aliasing, transparency, etc... Render different widths of silhouette edges with fattening parameter Use texture-mapping to get cooler silhouette edges Raskar and Cohen - Venus - Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/facecharcoal.gif

Extra Modifications Fatten front facing polygons with normal perpendicular to view direction (0 V N 0.1) Creates charcoal like strokes Raskar and Cohen - Venus Modified Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/venuscharcoal2.gif

Extra Modifications Fatten front facing polygons with normal perpendicular to view direction (0 V N 0.1) Creates charcoal like strokes Simple lighting technique for colour Vertex with normal N I = (I + V N) / 3 Raskar and Cohen - Venus Modified Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/venuscharcoal.gif

Extra Modifications Inconsistent order of vertices No front- or back-facing polygons Find first layer by rendering all polygons with colour ID and read back framebuffer Set pixels to white, keep depth buffer Render remaining polygons in black for black silhouette

Outline Motivation Previous Work Method Results Conclusions

Performance Venus model: 5672 triangles Frame rates W/o silhouettes...66 fps Wireframe...40 fps z-scaled...50 fps View-dependant fattening..11.5 fps Raskar and Cohen - Venus Modified Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/venuscharcoal2.gif

Performance Face model: 13408 triangles Frame rates W/o silhouettes...30 fps Charcoal...5 fps Performance drop with view dependant fattening due to extra triangles 6x more back-facing Raskar and Cohen - Venus - Fattening Technique http://www.cs.unc.edu/~raskar/sil/images/facecharcoal.gif

Performance Auxiliary machine room: 252000 triangles Frame rates W/o silhouettes...6 fps Wireframe...4.2 fps Raskar and Cohen I3D Slides

Outline Motivation Previous Work Method Results Conclusions

Conclusions Robust, real-time technique Traditional polygon rendering setup Simple method with sophisticated enhancements No pre-processing No adjacency information

Conclusions Complete scene traversal required Could render fewer back-facing polygons Find potential silhouette edges more efficiently using techniques described in Markosian et al. 1997 Could eliminate pairs of polygons both front- or both back-facing Described in Zhang et al. 1997

Conclusions Far-away scene results in cluttered silhouettes Improve technique by fattening according to average distance of scene from camera