Non-Photorealistic Rendering: Toon Shading David Luebke University of Virginia.

Slides:



Advertisements
Similar presentations
Why is photorealism the aim? People paint! What is NPR? NPR issues NonPhotorealistic Rendering.
Advertisements

Saito, T. and Takahashi, T. Comprehensible Rendering of 3-D Shapes Proc. of SIGGRAPH '90 Genesis of Image Space NPR.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
CS 4363/6353 BASIC RENDERING. THE GRAPHICS PIPELINE OVERVIEW Vertex Processing Coordinate transformations Compute color for each vertex Clipping and Primitive.
Week 7 - Monday.  What did we talk about last time?  Specular shading  Aliasing and antialiasing.
Walk-Through Illustrations: Frame-Coherent Pen-and-Ink Style in a Game Engine Bert Greudenberg Maic Masuch Thomas Strothotte.
Non-Photorealistic Rendering FORMS. Mesh (~170) Parametric (~16) Implicit/CSG (~9) Volumetric (~28) 3D Object Representation in NPR Point Cloud (~4)
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
1 Computer Graphics Chapter 9 Rendering. [9]-2RM Rendering Three dimensional object rendering is the set of collective processes which make the object.
Non-Photo Realistic Rendering Jian Huang CS594 Fall 2003 This set of slides are modified from the NPR Course during SIGGRAPH’2003.
Hardware Support for Non-photorealistic Rendering: A summary Paper last updated by Ramesh Raskar February 2002 Presented by Rachel Probert.
Real-Time Rendering SPEACIAL EFFECTS Lecture 03 Marina Gavrilova.
1 Hardware Feature Edges June 7, 2004 Morgan McGuire and John F. Hughes Brown University NPAR 2004 Hardware Feature Edges.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Suggestive Contours Final programming assignment Advanced topics in Computer Graphics.
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.
Non-Photorealistic Rendering - This is the attempt to make a realistic scene or object look as if it were hand drawn.
Week 14 - Wednesday.  What did we talk about last time?  Collision handling  Collision detection  Collision determination  Collision response  BSPs.
Computer graphics & visualization NPR – Non-photorealistic rendering.
Computer-Generated Pen- and-Ink Illustration Georges Winkenbach, David H. Salesin.
Painterly Rendering for Animation – Barbara Meier
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
03/30/05© 2005 University of Wisconsin NPR Today “Stylized Rendering Techniques for Scalable Real-Time 3D Animation”, Adam Lake, Carl Marshall, Mark Harris.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) CS 426 Intro to 3D Computer Graphics © 2003, 2004, 2005 Jason Leigh Electronic.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
A Non-Photorealistic Model for Automatic Technical Illustration Amy Gooch Bruce Gooch Peter Shirley Elaine Cohen SIGGRAPH 1998 Presented by Anteneh.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Textures and shadows  Generation  Mipmap  Texture coordinates,
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
TERRAIN SET09115 Intro to Graphics Programming. Breakdown  Basics  What do we mean by terrain?  How terrain rendering works  Generating terrain 
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
CS 638, Fall 2001 Multi-Pass Rendering The pipeline takes one triangle at a time, so only local information, and pre-computed maps, are available Multi-Pass.
Cel Shading Jason McCollum. Overview Nonphotorealistic Rendering (NPR) Cel-shading Concepts Demonstration.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Paint By Numbers The goal of a visual artist (Hagen): Without modeling detail, painters use brush strokes to: –Represent objects –Direct attention The.
Rendering Complexity in Computer-Generated Pen- and-Ink Illustrations Brett Wilson & Kwan-Liu Ma The University of California, Davis.
Non-Photorealistic Rendering Motivation: Much of the graphical imagery created is not photographic in nature Particularly in some domains: –Art –Animation.
David Luebke 1 6/4/2016 Non-Photorealistic Rendering Painting, Drawing, Sketching.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Non-Photorealistic Rendering: Toon Shading David Luebke University of Virginia.
Realtime NPR Toon and Pencil Shading Joel Jorgensen May 4, 2010.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
Ramesh Raskar University of North Carolina at Chapel Hill Ramesh Raskar University of North Carolina at Chapel Hill Image Precision Silhouette Edges Michael.
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
RENDERING Introduction to Shading models – Flat and Smooth shading – Adding texture to faces – Adding shadows of objects – Building a camera in a program.
Cel shading By jared brock.
CS559: Computer Graphics Final Review Li Zhang Spring 2010.
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.
Advanced Programmable Shading: Beyond Per-vertex and Per-pixel Shading.
X-Toon: An Extended Toon Shader Pascal Barla, Joelle Thollot ARTIS GRAVIR/IMAGE INRIA Lee Markosian University of Michigan.
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.
Shadows David Luebke University of Virginia. Shadows An important visual cue, traditionally hard to do in real-time rendering Outline: –Notation –Planar.
Introduction to Meshes Lecture 22 Mon, Oct 20, 2003.
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.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
Non-photorealistic rendering
Week 14 - Wednesday CS361.
Deferred Lighting.
CSCE 441: Computer Graphics Hidden Surface Removal
Cel Shading Jason McCollum.
Introduction to Meshes
Introduction to Meshes
Presentation transcript:

Non-Photorealistic Rendering: Toon Shading David Luebke University of Virginia

Admin Changes to remaining assignments

Non-Photorealistic Rendering “Using a term like ‘nonlinear science’ is like referring to the bulk of zoology as ‘the study of nonelephant animals’” Photorealism: age-old goal of graphics Non-photorealistic rendering –Broadly, techniques for rendering that don’t strive for realism, but style, expressiveness, abstraction, uncertainty, etc –A terrible, terrible term that we’re probably stuck with Better terms: stylized rendering, artistic rendering, abstract rendering

Stylized Rendering NPR is most commonly used to refer to graphics techniques that emulate a particular artistic style or medium –Impressionistic painting –Pen-and-ink (cross hatching, outlining, etc) –Colored-pencil, copperplate engraving, you name it –Cartoon drawing

Toon shading Toon shading is the term that we use to refer to cartoon-like rendering effects Tendencies in cartoon/comic style: –Simple, flat shading (cel shading) Two-tone (light/shadow) or three-tone (light/shadow/highlight) –Edge highlighting Boundary (border edge) Crease (hard edge) Material edge Silhouette edge

Toon Shading Cel shading –Threshold the lighting equation Ex: the Cg program we looked at Diffuse below 0.5 ? dark color : light color Specular above 0.5 ? hilight color : diffuse color If no pixel shaders, can use N ● L to look up a 1-D texture containing the shaded colors –In general, can think of these procedures as remapping the traditional lighting equation elements (tone mapping)

Silhouette Rendering Boundary (border edge) –Not shared by two polygons –E.g. the edge of a sheet of paper –Solid models usually have no boundaries Crease (hard edge) –Shared by two polygons at a dihedral angle greater than some threshold (often 60°) –Or a vertex with two normals/two colocated vertices –Ridge or valley edges

Silhouette Rendering Material edge –Triangles sharing edge have different materials/texture maps/etc –Or just an edge that the artist wants to emphasize Silhouette edge –Triangles sharing edge face different directions (towards/away from viewer) –Lots of techniques to find at runtime!

Finding/Rendering Silhouette Edges Surface angle silhouetting –Again, like the Cg program we looked at –Calculate N●V, if below threshold  draw black –Problem: depends on surface curvature (see Fig 7.5)

Procedural Geometry Silhouetting Idea: render the geometry in such a way that the silhouettes “fall out” Ex: –Draw frontfacing polygons –Draw backfacing polygons But draw them in thick (2-pixel) wireframe Or draw them in wireframe, z-biased forward a bit Or “fatten” them Or displace them along their normals (“halo” effect)

Results WireframeTranslationFattening 40 fps 50 fps 11.5 fps Original Venus model : 5672 triangles, 66 fps

Image Processing Silhouetting Idea: analyze the image after it’s rendered, and extract silhouettes (like edge detection) Can help by rendering e.g. depth image, object-ID image, normal image Perfect for fragment program!

Silhouette Edge Detection Idea: find silhouette edges geometrically and render them explicitly –Randomized Appel’s algorithm –Lots of interesting geometric approaches Most work, but gives the most flexibility in how silhouettes are drawn

Non-Photorealistic Rendering Drawing, Hatching, Painting David Luebke University of Virginia

Recap: Edge Highlighting Toon shading (and other NPR techniques based on drawing) requires some edges be drawn or highlighted: –Silhouette edges –Mesh boundaries (always on silhouette) –Creases (ridge and valley) –Material boundaries Find first at run-time, precalculate the others (unless object is deformable)

Recap: Silhouette Edges Surface angle silhouetting –Calc N●V, if below threshold  draw black Best as a per-pixel routine The Cg program we looked at Also can do with a spheremap, or use a mip-map with top-level textures dark –Pros: Uses the texture hardware  fast Can antialias the resulting lines –Cons: Line width depends on curvature Doesn’t work for some models (e.g., a cube)

Recap: Silhouette Edges Procedural Geometry Silhouetting –Idea: render the geometry in such a way that the silhouettes “fall out”, e.g.: Draw frontfacing polygons Draw backfacing polygons But draw them in (possibly thick) wireframe Or draw them z-biased forward a bit Or “fatten” them Or displace them along their normals (“halo” effect) –Flip normals –Amount of displacement varies w/ distance (why?) –Perfect task for vertex shader! –Pros: relatively robust, doesn’t need connectivity info –Cons: Wastes some fill & some polys, needs antialiasing

Results WireframeTranslationFattening 40 fps 50 fps 11.5 fps Original Venus model : 5672 triangles, 66 fps

Recap: Silhouette Edges Image Processing Silhouetting –Idea: analyze the image after it’s rendered, and extract silhouettes (i.e., edge detection) –Perfect for fragment program! –Can help by rendering e.g. depth image, object-ID image, normal image

Recap: Silhouette Edges Silhouette Edge Detection –Idea: find silhouette edges geometrically on the CPU and render them explicitly Brute force: test every edge to see if its adjoining polygons face opposite directions in eye space Can speed this up with randomized coherent search Most work, but gives the most flexibility in how silhouettes are drawn –GPU variant: Draw degenerate quadrilateral at each edge Use vertex shader to “fatten” quad into a “fin” when edge is on silhouette Fin thickness based on distance to eyepoint

Highlighting Ridge Edges Clever related technique by Raskar: –Add “fins” to every edge at dihedral angle –Size fins according to distance to viewer –Again, perfect for vertex shader Similar but more complicated technique for highlighting valley edges

Drawing Lines: Outlining Polygons Surprisingly hard to draw polys as filled outlines –Problem: depth buffer values of edge & polys same –2-pass technique: draw polys, then draw edges Z-bias edges forward or polygons back ( glPolygonOffset ) Works okay, but has occasional problems –3-pass technique: Render filled polygon Disable depth buffer writes (leave depth test on) Enable color buffer writes Render polygon edges polygon Normal depth & color buffering Render filled polygon again Enable depth buffer writes Disable color buffer writes

Drawing Lines: Hidden-Line Rendering Hidden-line vs. obscured line vs halos –Hidden-line Draw polygons to depth buffer (not color buffer) Draw edges using previous technique –Obscured (light, dotted, dashed) line Draw all edges in obscured style Draw polygons to depth buffer (not color buffer) Draw edges using previous technique –Haloed line Draw all edges as thick background-color lines Draw edges using biasing, foreground-color

Other Styles Impressionistic or “painterly” rendering: –Sprinkle particles on object surface –Draw particles as brushstrokes –Can render images to encode normals, surface curvature, depth, color/tone info

Painterly Rendering More info if time permits…

Other Styles Hatching: –Store different cross- hatch patterns representing different tones as textures –Clever ways to use texture hardware to blend between tones at run-time More info if time permits…

Other Styles “Graftals” are a general term used for strokes, decals, little bits of geometry Dynamic placement of graftals to achieve certain effects/styles:

Other Styles Technical Illustration