Npr today
1 / 57

NPR Today - PowerPoint PPT Presentation

  • Updated On :

NPR Today “Stylized Rendering Techniques for Scalable Real-Time 3D Animation”, Adam Lake, Carl Marshall, Mark Harris and Marc Blackstein, NPAR 2001 "Computer-Generated Pen-and-Ink Illustration of Trees", Oliver Deussen and Thomas Strothotte, SIGGRAPH 2000

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'NPR Today' - Gabriel

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Npr today l.jpg
NPR Today

  • “Stylized Rendering Techniques for Scalable Real-Time 3D Animation”, Adam Lake, Carl Marshall, Mark Harris and Marc Blackstein, NPAR 2001

  • "Computer-Generated Pen-and-Ink Illustration of Trees", Oliver Deussen and Thomas Strothotte, SIGGRAPH 2000

  • "Sketchy Drawings", Marc Nienhaus and Jurgen Dollner, AfriGraph 2004

© 2005 University of Wisconsin

Stylized rendering techniques for scalable real time 3d animation l.jpg

Stylized Rendering Techniques for Scalable Real-Time 3D Animation

Paper Overview

Leo Chao

© 2005 University of Wisconsin

Paper information l.jpg
Paper Information Animation

  • Published

    • NPAR 2001

      • (Non-Photorealistic Animation and Rendering)

    • Authors

      • Adam Lake

      • Carl Marshall

      • Mark Harris

      • Marc Blackstein

  • Graphics Algorithms and 3D Technologies Group

    • Intel Architecture Labs

  • UNC – Chapel Hill

© 2005 University of Wisconsin

Paper information4 l.jpg
Paper Information Animation

  • Prior Work

    • No novel techniques, adapts from prior works to hardware

  • Motion Lines

    • Maic Masuch. “Speedlines: Depicting Motion in Motionless Pictures.” ACM SIGGRAPH 99 Technical sketch.

    • Siu Chi Hsu and Irene H. H. Lee. "Drawing and Animation using Skeletal Strokes". In Proceedings of ACM SIGGRAPH 94, pages 109-118. 1994.

  • Silhouette Edges

    • Lee Markosian, Michael Kowalski, Samuel Trychi, Lubomir Bourdev, Daniel Goldstein, and John Hughes. Real-Time Nonphotorealistic Rendering. In Proceedings of ACM SIGGRAPH 97, pages 113-122. 1997.

  • Cartoon Shading

    • Philippe Decaudin. Rendu de scenes 3D imitant le style dessin anime. Rapport de Recherche 2919, Institut National de Recherche en Informatique et en Automatique. 1996.

© 2005 University of Wisconsin

Contributions l.jpg
Contributions Animation

  • Hardware Implementation of NPR Techniques

    • Stylistic Shading

      • Cartoon Shading

      • Pencil Sketch Shading

    • Stylistic Inking

      • Silhouette Edge Detection

      • Stylized Silhouette Rendering

    • Motion Lines

© 2005 University of Wisconsin

Stylistic shading l.jpg
Stylistic Shading Animation

  • Fundamentals

    • Preprocess colour textures

    • Render as normal

    • Except:

      • Modify lighting/shading calculations

      • May require texture coordinate processing

  • “Painter” – Modified Shading Step

    • Cartoon Shading

    • Pencil Sketch Shading

© 2005 University of Wisconsin

Stylistic shading7 l.jpg
Stylistic Shading Animation

  • Cartoon Shading

    • Reducing detail aids comprehension

    • No Smooth Shading

      • Color Reduction

      • Hard Transitions

  • Variants Simple

© 2005 University of Wisconsin

Stylistic shading8 l.jpg
Stylistic Shading Animation

© 2005 University of Wisconsin

Stylistic shading9 l.jpg
Stylistic Shading Animation

  • ALGORITHM Cartoon Shade

  • Preprocess:

  • Calculate the illuminated diffuse color for each material:

  • 2. Calculate the shadowed diffuse color:

  • 3. For each material, create a texture with two colors

  • - u=1 is coloured Ci

  • - u=0 is coloured Cs

Ci Vertex Color Cs Shadow Diffuse Color

al Light Ambient dl Light Diffuse

am Material Ambientdm Material Diffuse

ag Coefficient of Global Ambient Lighting

© 2005 University of Wisconsin

Stylistic shading10 l.jpg
Stylistic Shading Animation

  • ALGORITHM Cartoon Shade

  • Runtime:

  • Calculate the one-dimensional texture coordinate at each vertex

  • 2. Render the model using a standard graphics API

  • - Lighting disabled

  • - Enable texture mapping

L normalized light vector

n unit surface normal

© 2005 University of Wisconsin

Stylistic shading11 l.jpg
Stylistic Shading Animation

  • Pencil Sketch Shading

    • Extends cartoon shading to 2D textures

    • Extends cartoon shading to multiple textures

    • Multiple textures to represent light density

    • Associate texture coordinates

      • Project texture from the viewport onto the model

© 2005 University of Wisconsin

Stylistic shading12 l.jpg
Stylistic Shading Animation

© 2005 University of Wisconsin

Stylistic inking l.jpg
Stylistic Inking Animation

  • Fundamentals

    • Identify “important” edges

      • Silhouette

      • Border

      • Crease

    • Modify drawing of these edges

  • “Inker” – Modified Line Drawing

    • Visually important edge detection

    • Stylized edge drawing

© 2005 University of Wisconsin

Stylized inking l.jpg
Stylized Inking Animation

  • Visually important edge detection

    • Silhouettes

      • Front-Face and Back-Face share an edge

    • Borders

      • Edge shared by two materials

      • Unshared polygon edge

    • Creases

      • Large dihedral angle between polygons

© 2005 University of Wisconsin

Stylized inking15 l.jpg
Stylized Inking Animation

© 2005 University of Wisconsin

Stylized inking16 l.jpg
Stylized Inking Animation


  • Preprocess:

  • Create edge-list structure with Edge Type flags

    • Create a unique edge list using a hash table.

    • Edge Hash Function: sum the two vertex indices

    • Border Flag

      • Edges with only one neighboring face

      • Two neighboring faces with different materials

    • Set crease flags

      • Non-deformable geometry

      • Dihedral angle of two faces > threshold

© 2005 University of Wisconsin

Stylized inking17 l.jpg
Stylized Inking Animation


  • Runtime:

  • For deformable meshes:

    • Calculate face normals

    • Detect crease edges from face normals

    • Set Crease Edge flags

  • 2. Detect silhouette edges

  • a.

© 2005 University of Wisconsin

Stylized inking18 l.jpg
Stylized Inking Animation

  • Stylized “Important” Lines

    • Emphasis on these lines

    • Option 1: Straight Line

      • Fast/Easy

    • Option 2: Texture Maps

      • “Artistic” Style

      • Curvature driven “strokes”

      • Involves a graph driven search

      • This is a HACK

© 2005 University of Wisconsin

Stylized inking19 l.jpg
Stylized Inking Animation

© 2005 University of Wisconsin

Motion lines l.jpg
Motion Lines Animation

  • Gives the appearance of motion

  • For fast moving objects

  • Simple algorithm

  • Not much overhead

    • One circular buffer to maintain position data

© 2005 University of Wisconsin

Performance l.jpg
Performance Animation

  • Claim: Maintain Real-Time Speeds

    • 30 fps, in 2001

  • Tests:

    • Integrated with a level of detail scheme

    • Altered model complexity to maintain FPS

© 2005 University of Wisconsin

Performance22 l.jpg
Performance Animation

© 2005 University of Wisconsin

Future work l.jpg
Future Work Animation

  • Inker

    • Better “artistic” lines

  • Painter

    • Pencil sketch “doesn’t look right”

    • Follow surface gradient perhaps

  • Incorporate other NPR techniques

    • Those used by artists

    • Doesn’t say which would amenable

© 2005 University of Wisconsin

Questions l.jpg
Questions? Animation

  • ques·tion    (kw s ch n)n.

    • An expression of inquiry that invites or calls for a reply.

  • heck·le   (h k l)tr.v.

    • To try to embarrass and annoy (someone speaking or performing in public) by questions, gibes, or objections

© 2005 University of Wisconsin

Computer generated pen and ink illustration of trees siggraph 2000 l.jpg

“Computer-Generated Pen-and-Ink Illustration of Trees” Animation(SIGGRAPH 2000)

Oliver Deussen

Thomas Strothotte

© 2005 University of Wisconsin

Motivation l.jpg
Motivation Animation

  • The paper presents a method for creating pen-and-ink-like illustrations from detailed geometric models.

  • Motivated by the need for illustrative representations of plant life in architectural and landscape renderings.

  • We want to be able to produce images similar to this:

© 2005 University of Wisconsin

Related work l.jpg
Related Work Animation

  • “Cartoon Tree” – Alvay Ray Smith

    • Use small disks to represent bunches of leaves

  • Reeves and Blau

    • Use structured particle system to represent realistic trees.

  • Kowalski et al.

    • Two step process

      • Render shaded primitives that approximate foliage

      • Overlay graftals on rendered image using Salisbury’s line drawing method

© 2005 University of Wisconsin

Related work examples l.jpg
Related Work Examples Animation

  • Smith’s “cartoon tree”:

  • Kowalski’s Graftal Trees:

  • Reeves “particle forest”:

© 2005 University of Wisconsin

Traditional illustration of trees l.jpg
Traditional Illustration of Trees Animation

  • The Skeleton is drawn up to the second level of branching.

  • Foliage is broken up into three parts:

    • The directly lit canopy – represented by outlines and scarce inner detail

    • The half shadow – greater detail provides an overall darker grey level

    • The shaded area – achieved by thicker lines or drawing leaves in black

  • Artists will general use a combination of these to draw the leaves. Rarely do they use all three.

© 2005 University of Wisconsin

Drawing the skeleton l.jpg
Drawing the Skeleton Animation

  • The tree skeleton is represented by generalized cylinders.

  • Analytical Silhouette Algorithms

    • Markosian et al.

    • Rakar and Cohen

    • Depth Differences

  • The skeleton is shaded with crosshatch marks. Marks could be placed using the algorithm outlined by Salisbury et al.

    • The authors actually use a variant of Floyd-Steinberg diffusion that places strokes when the accumulated grey value is above a threshold.

© 2005 University of Wisconsin

Drawing the foliage l.jpg
Drawing the Foliage Animation

  • The xfrog modeling system can generate models with 200,000 leaves on a tree. We want to pair this down to 10,000 or so.

  • Leaves are represented abstractly by particles: a location and an orientation vector.

  • The goal is to illustrate groups of with a set of strokes.

  • Idea: Render particles as primitives and use depth buffer information to determine which leaves are spatially close and outline them.

© 2005 University of Wisconsin

Depth differences l.jpg
Depth Differences Animation

  • Initially, each particle is rendered with a view-facing primitive, such as a disk.

  • Basic Algorithm:

    • For each pixel compute the maximum positive difference between it and its neighbors

      • If the distance is above the given threshold, mark as an edge.

© 2005 University of Wisconsin

Depth differences continued l.jpg
Depth Differences Continued… Animation

  • The threshold and primitive size can be varied to achieve different effects:

    Primitive size: 0.15 Primitive size: 0.70

    Threshold: 1000 Threshold: 2000

  • The threshold can be varied using other buffers, achieving greater detail in areas that results in a shadowing effect:

© 2005 University of Wisconsin

Abstract drawing primitives l.jpg
Abstract Drawing Primitives Animation

  • More realistic leaves can be achieved by using the particles’ orientation vectors to interpolate between a set of polygons that represent leaves from different views

© 2005 University of Wisconsin

Level of abstraction l.jpg
Level-of-Abstraction Animation

  • Two Approaches

  • Convert raw z-buffer values from non-linear, projected values to linear values using formula below and vary threshold according to depth:

    d: depth value between 0 and 1

    d0: minimal depth value (e.g. 0)

    d1: maximal depth value (e.g. 65535)

    z0: depth value of near clipping plane

    z1: depth value of far clipping plane

  • Take advantage of the non-linearity to automatically generate more abstract representations.

  • Geometry farther away will be pushed into fewer values in the z-buffer.

  • A tree in the background will represented by fewer strokes than the same tree in the foreground.

© 2005 University of Wisconsin

Level of abstraction continued l.jpg
Level of Abstraction Continued… Animation

  • The level-of-abstraction can be furthered by scaling the primitives so that the amount of screen space they occupy is independent of their depth.

    r: scaling factor

    d: desired screen space

    s: actual screen space

    No ScalingScaled

© 2005 University of Wisconsin

Software implementation l.jpg
Software Implementation Animation

  • Calculate depth differences and mark pixels above threshold.

    • In the interactive mode this bitmap is directly used and blended with other geometry.

  • Generate shadows in software. Large number of isolated surfaces precludes hardware implementation.

  • Vectorize bitmap using least squares fitting or primitive identification method.

    • Draw lines using spline interpolation

    • Apply line styles

© 2005 University of Wisconsin

Results l.jpg
Results Animation

© 2005 University of Wisconsin

Future work40 l.jpg
Future Work Animation

  • Apply cross-hatch shading to the leaves

  • Create a continuous level-of-detail algorithm that stays performance while getting rid of artifacts that come with discrete representations.

  • Apply new styles and color for cartoons.

  • Questions?

© 2005 University of Wisconsin

Slide42 l.jpg

Sketchy Drawings Animation

Marc Niehaus Jürgen Döllner

University of Potsdam University of Potsdam

Sketchy drawings l.jpg
Sketchy Drawings Animation

  • Sketchiness shows unfinished state

  • Useful for architectural and product design

Previous work l.jpg
Previous Work Animation

  • G-Buffers (Saito & Takahashi 1990)

  • Edge enhancement (Nienhaus and Döllner 2003)

  • Loose and Sketchy filter (Curtis 1998)

  • Artistic Strokes (Northrup & Markosian 2000)

Algorithm overview l.jpg
Algorithm Overview Animation

  • Obtain edge and shading data

  • Perturb this data to get sketchy look

  • Problem: It needs to be done in real time

G buffers l.jpg
G-Buffers Animation

  • Need to access in real time

  • Depth/Color/Alpha/Stencil Buffer on graphics card

  • Textures

  • Current hardware allows multiple textures

  • Manipulate with fragment and pixel shaders

Edge map l.jpg
Edge Map Animation

  • Need to find edges for most NPR algorithms

  • Store three types of edges

    • Silhouette

    • Crease

    • Border

  • See Edge Enhancement (Nienhaus & Döllner 2003 )for more details

Shade map l.jpg
Shade Map Animation

  • Render unlit 3D geometry to capture flat colors

  • Store results in screen aligned texture instead of color buffer

Adding uncertainty l.jpg
Adding Uncertainty Animation

  • Apply uncertainty function to edge and shade maps

  • Store function in texture

  • Use Perlin function to get frame to frame consistency

  • Multiply uncertainty values with 2x2 matrix

  • Use different matrix for edge and shade maps to get a more sketchy feel

End result l.jpg
End Result Animation

  • Use shaders to combine results into texture

  • Render texture on screen-aligned quad

Style variations l.jpg
Style Variations Animation

  • Render edges multiple times

  • Roughen edge and surface colors

Issues l.jpg
Issues Animation

  • Depth Information

  • Shower-Door Effect

Updating depth info l.jpg
Updating Depth Info Animation

  • Depth info is lost when rendering 3D geometry to 2D textures

  • Solution: Render geometry into a depth map

  • Render perturbed depth sprite

    • use shaders to update depth buffer

  • Need to account for both edge and shade map

    • take min value and use this for depth

Shower door effect l.jpg
Shower-Door Effect Animation

  • When model moves, edges tend to swim around

  • Need to account for geometrical data

  • Also want to keep uncertainty past geometry edges

  • Solution: Render geometry info into another G-Buffer

  • Use geometry as a parameter to the noise function

Process summary l.jpg
Process Summary Animation

Questions56 l.jpg
Questions? Animation