Painterly Rendering with Curved Brush Strokes of Multiple Sizes - PowerPoint PPT Presentation

About This Presentation
Title:

Painterly Rendering with Curved Brush Strokes of Multiple Sizes

Description:

9/5/09. 1. Painterly Rendering with Curved Brush Strokes of ... An oxymoron? It's a method of reproducing the artistic style and/or expression of a painting ... – PowerPoint PPT presentation

Number of Views:259
Avg rating:3.0/5.0
Slides: 27
Provided by: csNorth
Category:

less

Transcript and Presenter's Notes

Title: Painterly Rendering with Curved Brush Strokes of Multiple Sizes


1
Painterly Rendering with Curved Brush Strokes of
Multiple Sizes
  • Aaron Hertzman, NYU
  • http//mrl.nyu.edu/publications/painterly98/
  • (SIGGRAPH 98)
  • Presented by Marc Flury

2
What is Painterly Rendering?
  • An oxymoron?
  • Its a method of reproducing the artistic style
    and/or expression of a painting using a source
    image.
  • An image space technique
  • Sort of a glorified Photoshop filter

3
An Example
4
An Example
5
In This Presentation
  • The rationale of painterly rendering using
    curved brush strokes of multiple styles
  • Overview of implementation
  • Examples of applying different parameters to
    achieve different styles

6
Rationale
  • Real painting requires
  • Time
  • Skill
  • Artistic talent
  • Typical filtering methods
  • Use only one size brush stroke
  • Cant refine style with multiple passes
  • Only support one style
  • Image is flattened

7
Typical Filtering - Photoshop
8
More detail needs smaller strokes
9
Improved Quality and Detail
10
Advantages
  • Much faster than painting
  • Can be used for video (or even interactive
    rendering)
  • Multiple brush sizes allow for varying detail and
    continuous color regions
  • Multi-pass method is somewhat analogous to true
    artistic techniques (better results?)
  • The system can be parameterized to create
    different styles

11
General Painting Algorithm
function paint (sourceImage, R1 Rn) canvas
a new constant color image // paint the
canvas for each brush radius Ri, from
largest to smallest do // apply Gaussian
blur referenceImage sourceImage G(fsRi)
// paint a layer paintLayer(canvas,
referenceImage, Ri) return canvas
12
source image
13
General Painting Algorithm
function paint (sourceImage, R1 Rn) canvas
a new constant color image // paint the
canvas for each brush radius Ri, from
largest to smallest do // apply Gaussian
blur referenceImage sourceImage G(fsRi)
// paint a layer paintLayer(canvas,
referenceImage, Ri) return canvas
14
Layer Painting Algorithm
function paintLayer(canvas, referenceImage, R)
S a new set of strokes, initially empty D
difference(canvas, referenceImage) grid
fg R for x0 to imageWidth stepsize grid do
for y0 to imageHeight stepsize grid do M
the region(x-grid/2xgrid/2,
y-grid/2ygrid/2) areaError sumOfError(M,
D) / grid2 if (areaError gt T) then
(x1, y1) maxPoint(areaError) stroke
makeStroke(R, x1, y1, referenceImage) add
stroke to S paint all strokes S on
canvas random order
15
Curved Brush Strokes
  • Anti-aliased cubic B-splines
  • Each stroke models the color gradient of the
    reference image
  • Stroke Representation
  • List of control points
  • Color
  • Brush Size

16
Curved Stroke Algorithm
function makeSplineStroke(x0, y0, R, refImage)
strokeColor refImage.color(x0, y0) K new
stroke, radius R, color strokeColor add point
(x0, y0) to K (x, y) (x0, y0) (lastDx,
lastDy) (0, 0) for i1 to maxStrokeLength do
if (i gt minStrokeLength and
(refImage.color(x,y) canvas.color(x,y) lt
refImage.color(x,y)- strokeColor)) then return
K if (refImage.gradientMag(x,y) 0) then
return K (gx, gy) refImage.gradientDirectio
n(x, y) (dx, dy) (-gy, gx) if (lastDx
dx lastDy dy lt 0) then (dx, dy)
(-dx, -dy) (dx, dy) fc (dx,dy) (1-fc)
(lastDx,lastDy) (dx, dy) (dx,dy)/(dx2
dy2)1/2 (x, y) (x Rdx, y Rdy)
(lastDx, lastDy) (dx, dy) add the point
(x, y) to K return K
17
Finding Control Points
D2
D1
D0
18
Style Parameters
  • Approximation Threshold (T)
  • Brush Sizes Smallest (Ri), Number (n),
    Size Ratio (Ri-1/Ri)
  • Curvature Filter (fc)
  • Blur Factor (fs)
  • Min and max stroke lengths (minLength, maxLength)
  • Opacity (a)
  • Grid size (fg)
  • Color Jitter (jh, js, jv, jr, jg, jb)

19
Examples Source Image
20
Examples Impressionism
T 100 R (8, 4, 2) fc 1 fs .5 a 1 fg
1 minLength 4 maxLength 16
21
Examples Expressionism
T 50 R (8, 4, 2) fc .25 fs .5 a .7 fg
1 minLength 10 maxLength 16 js .5
22
Examples Water Color
T 200 R (8, 4, 2) fc 1 fs .5 a .5 fg
1 minLength 4 maxLength 16 jr jg jh .3
23
Examples Pointillism
T 100 R (4, 2) fc 1 fs .5 a 1 fg
.5 minLength 0 maxLength 0 jv jh .3
24
More Examples.
25
More Examples
26
More Examples
Write a Comment
User Comments (0)
About PowerShow.com