Nonphotorealism. Christian Miller CS Fall 2011

Similar documents
LOD and Occlusion Christian Miller CS Fall 2011

Shading 1: basics Christian Miller CS Fall 2011

Transforms 3: Projection Christian Miller CS Fall 2011

Objects 2: Curves & Splines Christian Miller CS Fall 2011

Computer Graphics 10 - Shadows

Non-Photorealistic Rendering (NPR) Christian Richardt, Rainbow Group

Non-photorealistic Rendering

12/3/2007. Non-Photorealistic Rendering (NPR) What is NPR exactly? What is NPR exactly? What is NPR exactly? What is NPR exactly?

CS451Real-time Rendering Pipeline

Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping

Chapter 7 - Light, Materials, Appearance

NPR. CS 334 Non-Photorealistic Rendering. Daniel G. Aliaga

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

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

Non-Photorealistic Rendering

Real-Time Non- Photorealistic Rendering

Computer Graphics. Shadows

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Non-Photorealistic Experimentation Jhon Adams

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

Shadow Rendering EDA101 Advanced Shading and Rendering

Shading. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller/Fuhrmann

9. Illumination and Shading

Paint by Numbers and Comprehensible Rendering of 3D Shapes

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Lecture 15: Shading-I. CITS3003 Graphics & Animation

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

TEXTURE MAPPING. DVA338 Computer Graphics Thomas Larsson, Afshin Ameri

Stylized Rendering in Lugaru

Shading , Fall 2004 Nancy Pollard Mark Tomczak

Computer Graphics Introduction. Taku Komura

CS354 Computer Graphics Introduction. Qixing Huang Januray 17 8h 2017

Pipeline Operations. CS 4620 Lecture 10

Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

Geometry Shader - Silhouette edge rendering

A Hybrid Approach to Real-Time Abstraction

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Point based Rendering

Deferred Rendering Due: Wednesday November 15 at 10pm

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

Enhancing Information on Large Scenes by Mixing Renderings

Non-Photo Realistic Rendering. Jian Huang

Recall: Indexing into Cube Map

Art-based Rendering with Graftals

EEL Introduction to Computer Graphics. Team Essay: Fall Active learning project: non-photorealistic rendering. Submission deadlines:

Photorealism vs. Non-Photorealism in Computer Graphics

Hot Topics in Visualization

Real-time non-photorealistic rendering

(Joseph Hocking, Unity in Action, 2015, p.70) textures + shaders. general appl. matrix & other computations

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

CS 354R: Computer Game Technology

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

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

Hot Topics in Visualization. Ronald Peikert SciVis Hot Topics 12-1

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

CS452/552; EE465/505. Finale!

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

Computer Graphics CS 543 Lecture 1 (Part I) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

History of computer graphics

A model to blend renderings

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

Shadows in the graphics pipeline

Technical Quake. 1 Introduction and Motivation. Abstract. Michael Batchelder Kacper Wysocki

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Non photorealistic Rendering

Pen Tool, Fill Layers, Color Range, Levels Adjustments, Magic Wand tool, and shadowing techniques

Nonphotorealistic rendering

Computer Graphics (CS 4731) Lecture 16: Lighting, Shading and Materials (Part 1)

In- Class Exercises for Shadow Algorithms

COMP 175: Computer Graphics April 11, 2018

Spring 2009 Prof. Hyesoon Kim

I d like to start this section with a quote from David Byrne in an article for Utne. In the article he was mostly talking about 2D design and

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Spring 2011 Prof. Hyesoon Kim

Non photorealistic Rendering

Rendering and Radiosity. Introduction to Design Media Lecture 4 John Lee

Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation

Image Precision Silhouette Edges

Why modern versions of OpenGL should be used Some useful API commands and extensions

Lecture 17: Shadows. Projects. Why Shadows? Shadows. Using the Shadow Map. Shadow Maps. Proposals due today. I will mail out comments

Pipeline Operations. CS 4620 Lecture 14

A GPU-Based Approach to Non-Photorealistic Rendering in the Graphic Style of Mike Mignola

Image Precision Silhouette Edges

Artistic Rendering of Function-based Shape Models

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

Real-Time Shadows. Last Time? Schedule. Questions? Today. Why are Shadows Important?

Real-Time Painterly Rendering for MR Applications

Shadows. COMP 575/770 Spring 2013

Computer Graphics (CS 543) Lecture 7b: Intro to lighting, Shading and Materials + Phong Lighting Model

Z-Buffer hold pixel's distance from camera. Z buffer

Haga's Origamics. Haga's Origamics are a series of activities designed to illustrate the science behind simple paper folding.

Character animation Christian Miller CS Fall 2011

Shading. Brian Curless CSE 557 Autumn 2017

CS 130 Final. Fall 2015

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Physically Based Shading in Unity. Aras Pranckevičius Rendering Dude

Surface Rendering. Surface Rendering

Horizon-Based Ambient Occlusion using Compute Shaders. Louis Bavoil

COMPUTER GRAPHICS COURSE. Rendering Pipelines

Transcription:

Nonphotorealism Christian Miller CS 354 - Fall 2011

Different goals Everything we ve done so far has been working (more or less) towards photorealism But, you might not want realism as a stylistic choice In fact, you usually don t want it... This is where non-photorealistic rendering (NPR) comes in

Like this [RTR]

Line drawing Draw an object just using lines, no surfaces Often used in blueprints [WP]

Edges to enhance Every object has a ton of edges to it Which edges you want to draw lines for depends on the type of edge it is: Silhouette edges: the visible outline of an object Crease edges: sharp angles within the outline Boundary edges: hard edges of objects Material edges: places where the color changes

Types of edges [RTR]

Finding mesh edges Material: picked a-priori during authoring Boundary: edges with only one attached triangle Crease: edges where the angle between the adjacent triangles is under some threshold Silhouette: edges where one triangle is front-facing and the other is back-facing (found at runtime)

Rendering modes Hidden line rendering becomes more difficult, since there are no faces to objects Usually draw all face geometry into just depth buffer, then draw biased lines with depth test enabled

Silhouette edges Silhouettes are expensive, since you need to test every edge on every frame Would be nice if there was some other way to render the edges Depth buffer / depth test can help us out

Cheap outline hack If your object is closed, simply expand the backfaces Doesn t guarantee consistent line width, only works on silhouettes [RTR]

Example [Cel Damage]

Filter-based methods Another approach: run a bunch of image filters Render image to depth buffer and normal buffer Draw a quad over the screen, have pixel shader sample all the buffers and render lines as appropriate

Detecting edges Image filter: sample nearby pixels, then do some math on them to get a result Technically, this is a 2D convolution operation Sobel filter: a common direction-dependent edge detection filter

Sobel results [WP]

Image-based edges Normal, depth, extracted edges from both [SX]

Image-based edges [Borderlands]

Brush strokes If you string together extracted edges, you can render them as brush strokes Doesn t look natural in motion, but interesting nonetheless [NM]

Shading Outlines are only part of the image, what about shading? We generally try to imitate other artistic styles, piggybacking on top of machinery we already have for graphics

Gooch shading Start with diffuse shading, use result to look up a color in a gradient between a warm and cool color Fade continues into shadow side (negative N L) Add Phong highlight if desired [BG]

Gooch shading Great for technical illustration, not as harsh looking as regular shading [BG]

Cel shading Instead of using (N L) to multiply diffuse color directly, assign constant brightness values to several ranges At runtime, use (N L) to look up brightness to use, then continue with lighting equation as normal Gives a hand-drawn look, which is how it gets its name

Cel shading [Jet Grind Radio, Zelda: Wind Waker]

Textured shading Another idea: use (N L) to look up which texture to use during shading Can have several textures with different darkness that are blended together to get the final result [RH]

Textured shading Lots of details to get this to work right... [RH]

Lit sphere Take a picture of a sphere lit the way you want it Or it could be hand drawn Render a different mesh, and do paint-by-normal: if a position has a certain normal, find out where that normal would be on the sphere and take the corresponding color [LS]

Lit sphere These spheres were hand-drawn and scanned, and the David model is rendered with paint-by-normal [LS]

Lit sphere Like environment mapping without reflection Can only handle one view, light is fixed with viewer Can piece together a lit sphere from an image to extract the lighting from a painting [LS]

Painterly rendering Really has nothing to do with rendering... Idea: take a regular paint program, and make it automatically set brush color by sampling an image User paints in the image, using existing colors but new brushes Super simple to implement, and generates interesting results

Painterly rendering

figures courtesy... Real-Time Rendering, 3rd ed. [RTR] Tomas Akenine-Moller, Eric Haines, Naty Hoffman Interactive Computer Graphics: A Top-Down Approach Featuring Shader-Based OpenGL, 6th ed. [ICG] Edward Angel, Dave Shreiner Wikipedia [WP] Nothrup & Markosian, Artistic Silhouettes: A Hybrid Approach, NPAR 2000 [NM] Engel, Wolfgang (ed.), ShaderX [SX] Gooch et al., A Non-Photorealistic Lighting Model for Automatic Technical Illustration., SIGGRAPH 98 [BG] Sloan et al., The Lit Sphere: A Model for Capturing NPR Shading from Art, Graphics Interface 2001 [LS] Praun et al., Real-Time Hatching, SIGGRAPH 2001 [RH]