Non photorealistic rendering npr
Download
1 / 46

Non-Photorealistic Rendering NPR - PowerPoint PPT Presentation


  • 488 Views
  • Uploaded on

Non-Photorealistic Rendering (NPR) CSE 781 Winter 2006 Han-Wei Shen Non-photorealistic Rendering Most computer graphics work strives for photorealism Other types of depiction can be more expressive or artistic NPR – Technical Illustration Illustrate important features

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

PowerPoint Slideshow about 'Non-Photorealistic Rendering NPR' - jana


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
Non photorealistic rendering npr l.jpg

Non-Photorealistic Rendering (NPR)

CSE 781 Winter 2006 Han-Wei Shen


Slide2 l.jpg

Non-photorealistic Rendering

  • Most computer graphics work strives for photorealism

  • Other types of depiction can be more expressive or artistic


Npr technical illustration l.jpg
NPR – Technical Illustration

  • Illustrate important features


Npr painterly rendering l.jpg
NPR – Painterly Rendering

  • Make it look like being created using brush strokes and paint


Npr sketchy rendering l.jpg
NPR – Sketchy Rendering

  • Make it look like being created with pencil sketch


Shape abstraction by lines l.jpg
Shape Abstraction by Lines

  • Boundary Lines

  • Silhouette Lines

  • Creases

  • Material Edges


Shape abstractions by lines l.jpg
Shape Abstractions by Lines

  • Various line styles can be used


Shape abstraction by shading l.jpg
Shape Abstraction by Shading

Regular OpenGL Gouraud Shading Tone Shading


Shape abstraction by shading9 l.jpg
Shape Abstraction by Shading

  • More effective when combined with lines




Feature line detection l.jpg
Feature Line Detection

  • Image space method – analyze the rendered images

  • Object space method – analyze the mesh


Image space method l.jpg
Image Space Method

  • Analyze the depth buffer – look for depth discontinuity using edge detector


Image space method14 l.jpg
Image Space Method

  • Analyze the Normal Map – convert surface normal (x,y,z) to (R,G,B) and then detect the color discontinuity


Image space method15 l.jpg
Image Space Method

  • Better result can be obtained if both edges are combined


Edge detector l.jpg
Edge Detector

  • Discontinuity in depth map or normal map can be detected using edge detector

Ix(x,y) = I(x,y) x Sx; Iy(x,y) = I(x,y) x Sy

IM = sqrt ( Ix(x,y) + Iy(x,y) )

Get edge by thresholding IM

2

2


Image space method problem l.jpg
Image Space Method Problem

  • For a folded piece of a paper, the edge cannot be detected


Object space method l.jpg
Object Space Method

  • Mainly used to detect silhouettes and creases

    • Silhouettes: edges that connect front and back faces

    • Creases: A discontinuity on an otherwise smooth edges


Silhouette l.jpg
Silhouette

  • For a smooth surface, a silhouette can be defined as:

    • N. (X-E) = 0 ; N: normal, X: silhouette point; E: camera


Software method l.jpg
Software Method

  • Detect Silhouettes from all triangle edges

  • For each vertex, evaluate:

    • d = n. (x-e) / |n|*|(x-e)|

    • s = + if d >0; else –

  • Find s = 0 along face edges



Hardware method l.jpg
Hardware Method

  • Use OpenGL to draw silhouette edges (no explicit search)

  • Pseudo code (a three pass method)

    draw shaded front faces

    draw front faces in line mode, set stencil

    draw back faces in line mode where stencil was set; decrementing stencil


Hardware method23 l.jpg
Hardware Method

  • Reduce to 2 pass by push the backface forward (z bias)

visible

backface

Eye

Angle dependent

front back

Use glPolygonOffset


Issues of the previous method l.jpg
Issues of the previous method

  • Non-uniform z resolution needs to be taken care of – translate by k*z;

    • K: a scaling factor, z: the polygon distance

  • The width of the line will depend on the orientation of the back-facing polygon and front-facing polygon

  • Raskar and Cohen – fatten the back-facing polygons


Raskar and cohen s fix l.jpg
Raskar and Cohen’s fix

  • The back-facing polygon edge is pushed outwards

By Offset = K * z/V.Nb

Nb

v

F

B

B

F

The distance to push only depends on the orientation of back-facing polygon


Raskar and cohen s fix26 l.jpg
Raskar and Cohen’s fix

  • In fact, each of the polygon edges needs to be pushed by a different amount: z*sin(a)/V.Nb; where cos(a) = v.e, e is the polygon edge vector


Charcoal effect l.jpg
Charcoal Effect

  • Tessellate the polygon to smaller pieces

  • Also fatten front-facing polygons with 0<N.V<0.1

  • Assign color I = (1+V.N)/3



Line weight l.jpg
Line Weight

  • Some possible choices:

    • Single line weight used throughout the image

    • Two line weights, with heavier describing the outer edges (boundary and silhouette)

    • Various light weight along a single line, emphasizing perspective effect (heavy lines in the foreground, tapering toward the farther part of the object)



Line color l.jpg
Line Color

  • Attempt to incorporate shading

  • Interior lines can be drawn in white, simulating highlight


Tone shading l.jpg
Tone Shading

  • The standard Phong Shading model is not always satisfactory

  • Problems in regions where

  • N.L < 0

  • Only Ambient Colors are seen

  • Difficult to deduce shapes

  • Object outlines cannot be seen


Two ad hoc solutions l.jpg
Two ad hoc solutions

  • Hand-tuned ambient color

  • Just highlights and edge lines

Ambient is only a constant 

Not enough surface detail 


Effective shading model needed l.jpg
Effective Shading Model Needed

  • Shading Model is insufficient

  • Lost shape information

    • Especially in the areas of subtle curvature

      (small claws above)

  • Not automatic, lots of hand-tuning


Tone shading goals l.jpg
Tone Shading Goals

  • To include shading in an image with back edge lines and white highlights visible

    • Use a compressed dynamic range for shading

    • Use color visually distinct from black and white


Reduce dynamic range l.jpg
Reduce dynamic range

  • One way to compress dynamic color range is to use colors of different tones

    • Add gray to a color to generate different tones

Unnatural color

Lack of luminance difference


Create undertone l.jpg
Create Undertone

  • To further differentiate different surface orientations, we can use cool to warm color undertones

  • Cool colors – blue, violet, green

  • Warm colors – red, orange, yellow

warm

cold


Test your perception l.jpg
Test Your Perception

Which color (yellow or blue) seems closer?


Test your perception39 l.jpg
Test Your Perception

What about now?


Blend tone and undertone l.jpg
Blend Tone and Undertone

  • Add warm-to-cool undertone to a red object


Use warm to cool undertone l.jpg
Use warm-to-cool undertone

  • We can modify the diffuse Phong Lighting Model (Blend cool and warm color )

    I = (1 + L.N)/2 * Kcool +(1- (1+L.N/2)) * Kwarm

    The Light vector should be place in perpendicular to the gaze direction (usually place at up and to the right)

Normalize N.L


Tone shading equation l.jpg
Tone Shading Equation

  • Kcool = Kblue + aKd (undertone and tone)

  • Kwarm = Kyellow + b Kd (undertone and tone)

    Kblue = (0,0,b) b in [0,1]

    Kyellow = (g,g,0) g in [0,1]

    a and b are user-specified parameters

    Kd is the object diffuse color



Tone shading results l.jpg
Tone Shading Results

b = 0:55, g = 0:3, a = 0:25, b = 0:5




ad