Real-Time Non- Photorealistic Rendering

Similar documents
Shadows. COMP 575/770 Spring 2013

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

Real-time non-photorealistic rendering

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

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

Non-Photorealistic Experimentation Jhon Adams

Image Precision Silhouette Edges

Non-Photo Realistic Rendering. Jian Huang

Image Precision Silhouette Edges

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

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

Clipping. CSC 7443: Scientific Information Visualization

Computer Graphics. Bing-Yu Chen National Taiwan University

Nonphotorealism. Christian Miller CS Fall 2011

Hidden Surface Removal

Computer Graphics Shadow Algorithms

3D Rasterization II COS 426

White Paper. Solid Wireframe. February 2007 WP _v01

Artistic Rendering of Function-based Shape Models

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

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

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Volume Shadows Tutorial Nuclear / the Lab

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

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

Graphics and Interaction Rendering pipeline & object modelling

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

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

Paint by Numbers and Comprehensible Rendering of 3D Shapes

CEng 477 Introduction to Computer Graphics Fall 2007

Direct Rendering of Trimmed NURBS Surfaces

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

COMPUTER GRAPHICS COURSE. Rendering Pipelines

Illumination Modelling

Clipping. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Surface Rendering. Surface Rendering

Visualization Concepts

Mach band effect. The Mach band effect increases the visual unpleasant representation of curved surface using flat shading.

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

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

Werner Purgathofer

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

CMSC 491A/691A Artistic Rendering. Announcements

CS 4620 Midterm, March 21, 2017

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

Chapter 7 - Light, Materials, Appearance

Hidden surface removal. Computer Graphics

Effectiveness of Silhouette Rendering Algorithms in Terrain Visualisation

CMSC427 Final Practice v2 Fall 2017

CS451 Texturing 4. Bump mapping continued. Jyh-Ming Lien Department of Computer SCience George Mason University. From Martin Mittring,

CSC 2521 Final Project Report. Hanieh Bastani

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

COMP30019 Graphics and Interaction Rendering pipeline & object modelling

Lecture outline. COMP30019 Graphics and Interaction Rendering pipeline & object modelling. Introduction to modelling

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

Non-photorealistic Rendering

Overview. Pipeline implementation I. Overview. Required Tasks. Preliminaries Clipping. Hidden Surface removal

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Topic 10: Scene Management, Particle Systems and Normal Mapping. CITS4242: Game Design and Multimedia

Computer-Generated Pen & Ink Illustration

Pen & Ink Illustration

Real-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer

Interactive Inverted Perspective Rendering for Architectural Visualization

CHAPTER 1 Graphics Systems and Models 3

The Traditional Graphics Pipeline

COMP371 COMPUTER GRAPHICS

CIS 581 Interactive Computer Graphics

Advanced Lighting Techniques Due: Monday November 2 at 10pm

Shadows in the graphics pipeline

10.6 Render - Freestyle

A model to blend renderings

Simple Silhouettes for Complex Surfaces

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts

Abstract. 2 Description of the Effects Used. 1 Introduction Phong Illumination Bump Mapping

FROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU

The Traditional Graphics Pipeline

Some Thoughts on Visibility

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

COMP 175: Computer Graphics April 11, 2018

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

Dynamic Ambient Occlusion and Indirect Lighting. Michael Bunnell NVIDIA Corporation

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

Intro to Ray-Tracing & Ray-Surface Acceleration

Computer Graphics Introduction. Taku Komura

Com S 336 Final Project Ideas

Einführung in Visual Computing

Rendering Nonphotorealistic Strokes with Temporal and Arc-Length Coherence

Stencil Shadow Volumes

Art Based Rendering of Fur by Instancing Geometry

Adaptive Point Cloud Rendering

Universiteit Leiden Computer Science

CSE528 Computer Graphics: Theory, Algorithms, and Applications

Principles of Computer Graphics. Lecture 3 1

The Traditional Graphics Pipeline

Physically-Based Laser Simulation

Technion - Computer Science Department - Technical Report CIS

9. Illumination and Shading

CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications

Transcription:

Real-Time Non- Photorealistic Rendering Presented by: Qing Hu LIAO SOCS, McGill Feb 1, 2005

Index Introduction Motivation Appel s Algorithm Improving Schema Rendering Result

Economy of line A great deal of information could be effectively conveyed by very few strokes. The Gazette, Jan 27, 05 Non-Photorealistic Rendering?

Introduction NPR often emphasis the visible features edges: Silhouette; Crease, border, and etc. Morgan McGuire jgt 2004

Introduction NPR often emphasis the visible features edges: Silhouette; Crease, border, and etc. Naïve visible-line line detection algorithm (Ray( Tracing): Easy to implement; But slow: O (n*n). Morgan McGuire jgt 2004

Motivation Find and render visible feature edges in real-time time. use a modification of Appel s visible-line line algorithm (APPE67).

Motivation Find and render visible feature edges in real-time time. use a modification of Appel s visible-line line algorithm (APPE67). Why not Z-buffer Z algorithm?

Motivation Find and render visible feature edges in real-time time. use a modification of Appel s visible-line line algorithm (APPE67). Why not Z-buffer Z algorithm? Can t t easily produce different hand-drawn drawn styles for visible feature lines or surface: Since the hand-drawn drawn strokes have different geometry shape with the corresponding feature lines or surface.

Motivation Find and render visible feature edges in real-time time. use a modification of Appel s visible-line line algorithm (APPE67). Why not Z-buffer Z algorithm? Can t t easily produce different hand-drawn drawn styles for visible feature lines or surface: Since the hand-drawn drawn strokes have different geometry shape with the corresponding feature lines or surface. Historical reason: Vertex and fragment Shader (GPU) not available.

Definitions Front-facing & Back-facing Polygons Determined by the sign of dot-product of normal direction and view direction. Appel s visible-line algorithm

Definitions Silhouette Edge Adjacent to one front- facing and one back-facing polygon. Edge AB, CD, KL, DF, Appel s visible-line algorithm

Definitions Silhouette Edge Adjacent to one front- facing and one back-facing polygon. Edge AB, CD, KL, DF, Border Edge Adjacent to just one face. Appel s visible-line algorithm

Definitions Silhouette Edge Adjacent to one front- facing and one back-facing polygon. Edge AB, CD, KL, DF, Border Edge Adjacent to just one face. Contour Edge: Silhouette edge; Border edge. Appel s visible-line algorithm

Quantitative Invisibility (QI( QI) QI of a point on a line: The number of front-facing facing polygons that obscure that point from eye; Appel s visible-line algorithm

Quantitative Invisibility (QI( QI) QI of a point on a line: The number of front-facing facing polygons that obscure that point from eye; Increase by 1 when pass behind a front-facing facing polygon; Appel s visible-line algorithm

Quantitative Invisibility (QI( QI) QI of a point on a line: The number of front-facing facing polygons that obscure that point from eye; Increase by 1 when pass behind a front-facing facing polygon; Decrease by 1 when pass out that front-facing facing polygon; Appel s visible-line algorithm

Quantitative Invisibility (QI( QI) QI of a point on a line: The number of front-facing facing polygons that obscure that point from eye; Increase by 1 when pass behind a front-facing facing polygon; Decrease by 1 when pass out that front-facing facing polygon; Only change when pass behind a contour line (silhouette or border edges). Appel s visible-line algorithm

Quantitative Invisibility (QI( QI) QI of a point on a line: The number of front-facing facing polygons that obscure that point from eye; Increase by 1 when pass behind a front-facing facing polygon; Decrease by 1 when pass out that front-facing facing polygon; Only change when pass behind a contour line (silhouette or border edges). A point is visible only when QI=0. Appel s visible-line algorithm

Complication Vertex Complication vertex is vertex on silhouette edges: Through which the QI value should be computed according to local adjacent polygons. Appel s visible-line algorithm

Complication Vertex Complication vertex is vertex on silhouette edges: Through which the QI value should be computed according to local adjacent polygons. Examples of complication vertex: Vertex K: QI change along J-K-L. Appel s visible-line algorithm

Complication Vertex Complication vertex is vertex on silhouette edges: Through which the QI value should be computed according to local adjacent polygons. Examples of complication vertex: Vertex K: QI change along J-K-L. Vertex K: no change along J-K-M. M Appel s visible-line algorithm

Complication Vertex Complication vertex is vertex on silhouette edges: Through which the QI value should be computed according to local adjacent polygons. Examples of complication vertex: Vertex K: QI change along J-K-L. Vertex K: no change along J-K-M. Examples of normal vertex: Vertex E: : no change along any path. Appel s visible-line algorithm

Edge coherence Edge coherence: along the mesh of edges, QI only changes when:

Edge coherence Edge coherence: along the mesh of edges, QI only changes when: Pass behind a contour edge, or

Edge coherence Edge coherence: along the mesh of edges, QI only changes when: Pass behind a contour edge, or Encounter a complication vertex.

Appel s visible-line line Algorithm Take advantage of edge coherence to compute QI value of all the vertex in the models from a viewpoint: No. Step Method Load 1 2 3

Appel s visible-line line Algorithm Take advantage of edge coherence to compute QI value of all the vertex in the models from a viewpoint: No. Step 1 Detect all the contour edges of the models from a specified viewpoint. 2 Method Exhaustive search Load Heavy 3

Appel s visible-line line Algorithm Take advantage of edge coherence to compute QI value of all the vertex in the models from a viewpoint: No. Step 1 Detect all the contour edges of the models from a specified viewpoint. 2 Compute QI for a seed vertex via brute-force computation. 3 Method Exhaustive search Ray tracing Load Heavy Medium

Appel s visible-line line Algorithm Take advantage of edge coherence to compute QI value of all the vertex in the models from a viewpoint: No. Step 1 Detect all the contour edges of the models from a specified viewpoint. 2 Compute QI for a seed vertex via brute-force computation. 3 Propagate the seed s s QI value out through connected edges by (1): finding the intersections with contour edges in image space and (2): taking care of the complication vertex. Method Exhaustive search Ray tracing Sweep-line Load Heavy heavy Medium

Improving Appel s Algorithm This paper proposed some improvements over the original Appel s algorithm and make it suitable for real-time interactive application.

Improving Appel s Algorithm This paper proposed some improvements over the original Appel s algorithm and make it suitable for real-time interactive application. Focus primarily on finding the silhouette edges quickly, since: Directly improve step 1 of Appel s algorithm. The most important feature edges for NPR.

Improving Appel s Algorithm Step 1: A fast randomized algorithm for finding silhouette.

Improving Appel s Algorithm Step 1: A fast randomized algorithm for finding silhouette. Step 2: Avoiding ray tracing tests for seed to determine visibility of silhouette, or Efficient ray tracing via walking or Octree Technique.

Improving Appel s Algorithm Step 1: A fast randomized algorithm for finding silhouette. Step 2: Avoiding ray tracing tests for seed to determine visibility of silhouette, or Efficient ray tracing via walking or Octree Technique. Step 3: Check Cusp vertex along silhouette edges.

Fast Randomized Algorithm for Finding Silhouettes Silhouette edges form closed curves on 3D model space.

Fast Randomized Algorithm for Finding Silhouettes Silhouette edges form closed curves on 3D model space. Algorithm: Weight all the edges according to: dihedral angle. Being silhouette edges in previous frame.

Fast Randomized Algorithm for Finding Silhouettes Silhouette edges form closed curves on 3D model space. Algorithm: Weight all the edges according to: dihedral angle. Being silhouette edges in previous frame. Choose a small fraction of edges randomly according to the weight.

Fast Randomized Algorithm for Finding Silhouettes Silhouette edges form closed curves on 3D model space. Algorithm: Weight all the edges according to: dihedral angle. Being silhouette edges in previous frame. Choose a small fraction of edges randomly according to the weight. If find a silhouette edge, trace out the entire silhouette curve.

Fast Randomized Algorithm for Finding Silhouettes Silhouette edges form closed curves on 3D model space. Algorithm: Weight all the edges according to: dihedral angle. Being silhouette edges in previous frame. Choose a small fraction of edges randomly according to the weight. If find a silhouette edge, trace out the entire silhouette curve. This algorithm can t t guarantee all the silhouette edges will be found, but in practice it is extremely efficient and effective: Tradeoff between accuracy and speed.

Cusp Vertex on Silhouette A complication vertex on silhouette curve is cusp vertex if: Adjacent to 2 silhouette edges, one front-facing facing and the other back-facing. Or adjacent to more than 2 silhouette edges, Or adjacent to a border edge.

Cusp Vertex on Silhouette A complication vertex on silhouette curve is cusp vertex if: Adjacent to 2 silhouette edges, one front-facing facing and the other back-facing. Or adjacent to more than 2 silhouette edges, Or adjacent to a border edge. QI along a silhouette curve can change at a vertex only if that vertex is cusp vertex.

Avoiding Ray Tracing (1) Compute the 2D bounding box of all the silhouette curves in image space of current frame. The silhouette curves which touch the bounding box don t t need ray tracing. Touching point s QI = 0.

Avoiding Ray Tracing (2) For each connected silhouette curves, choose an arbitrary base point and assume its initial QI value = 0.

Avoiding Ray Tracing (2) For each connected silhouette curves, choose an arbitrary base point and assume its initial QI value = 0. Propagate the initial QI value along each silhouette curves.

Avoiding Ray Tracing (2) For each connected silhouette curves, choose an arbitrary base point and assume its initial QI value = 0. Propagate the initial QI value along each silhouette curves. Adjust the initial QI values for the whole silhouette curve according to: QI >= 0 Occlusion relationship between the intersection edges from different silhouette curves.

Avoiding Ray Tracing (2) For each connected silhouette curves, choose an arbitrary base point and assume its initial QI value = 0. Propagate the initial QI value along each silhouette curves. Adjust the initial QI values for the whole silhouette curve according to: QI >= 0 Occlusion relationship between the intersection edges from different silhouette curves. For some silhouette curves, the minimum value of QI is greater than 0, and then ray tracing is not necessary.

Effective Ray Tracing Walking Algorithm: Only work when all objects are in front of camera; Fast but complex. Octree Algorithm Immersive scene.

Rendering visible lines (1) Drawing the lines directly with slight enhancement, such as: Width; Color. A mechanical part

Rendering visible lines (2) High-resolution artistically perturbed strokes defined by adding offsets to the lines: Mechanical part rendered with sketchy lines

Rendering visible lines (3) Texture-mapped strokes: A charcoal-like rendering of terrain with texture-mapped strokes

Performance

Extensions The variation of the algorithm also could help to fast locate the other features: Visible crease, border edges; hidden silhouette. Visible shadow surface.

More Results Human figure with expressive outline and shading strokes Mechanical part with lines in varied styles

Recommended Reading Hardware Determined Edge Features by Morgan McGuire and John F. Hughes; Utilization of vertex shader on GPU. The most promising technique for real-time feature edges detection.

More Pictures

The Ends Thanks for your patience. Question?