1 / 22

Painterly Rendering with Curved Brush Strokes of Multiple Sizes

Painterly Rendering with Curved Brush Strokes of Multiple Sizes. Aaron Hertzman, NYU Presented by: Shreeganesh Ramanan. Introduction. Painterly Rendering is a method of reproducing artistic style and expression of a painting using a source image and/or 3D models An Image Space Technique

Download Presentation

Painterly Rendering with Curved Brush Strokes of Multiple Sizes

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Painterly Rendering with Curved Brush Strokes of Multiple Sizes Aaron Hertzman, NYU Presented by: Shreeganesh Ramanan

  2. Introduction • Painterly Rendering is a method of reproducing artistic style and expression of a painting using a source image and/or 3D models • An Image Space Technique • A few steps beyond what PhotoshopTM offers.

  3. A Sampler

  4. A Sampler

  5. Things to discuss • “curved brush strokes of multiple sizes” • Implementation details(as little as possible  ) • Various parameters and what they can do

  6. So you want to be an artist ? • Do you have lot of time ? • A huge smattering of skill ? • That elusive thing called talent • And some canvas, paints, a subject, and a dirty rag you call work clothes

  7. Or we can turn to NPR

  8. Previous Work… • One brush size only • No multiple passes to refine style • Support for one style only • Image looks “flattened”

  9. Previous Work.. • But details need different sized strokes

  10. CBS of MS improves quality

  11. Advantages • Faster than painting • Can be used for interactive rendering • Multiple brush sizes allow for varying detail and continuous color regions • Multipass method similar to how artist paint • Different parameters create different styles

  12. Main Loop function paint (sourceImage, R1 … Rn) { canvas := a new constant color image // paint the canvas foreach brush radius Ri, from largest to smallest do { // apply Gaussian blur referenceImage = sourceImage * G(fσRi) // paint a layer paintLayer(canvas, referenceImage, Ri) } returncanvas }

  13. Painting a Layer function paintLayer(canvas, referenceImage, R) { S := a new set of strokes, initially empty D := difference(canvas, referenceImage) grid := fg R forx=0 to imageWidth stepsize grid do{ fory=0 to imageHeight stepsize grid do{ M := the region(x-grid/2…x+grid/2, y-grid/2…y+grid/2) areaError := sumOfError(M, D) / grid2 if (areaError > T) then { (x1, y1) := maxPoint(areaError) stroke := makeStroke(R, x1, y1, referenceImage) add stroke to S } } } paint all strokes S on canvas – random order }

  14. Curved Brush Strokes • Anti-aliased cubic B-Splines • Each stroke models the color gradient of reference image • Representation • Control Points • Color • Size of brush

  15. Spline 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) fori=1 to maxStrokeLength do{ if (i > minStrokeLength and(|refImage.color(x,y) – canvas.color(x,y)| < |refImage.color(x,y)- strokeColor)) thenreturnK if (refImage.gradientMag(x,y) ==0) thenreturn K (gx, gy) := refImage.gradientDirection(x, y) (dx, dy) := (-gy, gx) if (lastDx * dx + lastDy * dy < 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 + R*dx, y + R*dy) (lastDx, lastDy) := (dx, dy) add the point (x, y) to K } return K }

  16. G1 (x2, y2) θ1 G0 (x1, y1) G2 θ0 (x0, y0) Calculating Control Points D1 D0

  17. Parameters of Style • Approximation Threshold (T) • Brush Sizes – Smallest (Ri), Number (n), Size Ratio (Ri-1/Ri) • Curvature Filter (fc) • Blur Factor (fσ) • Min and max stroke lengths (minLength, maxLength) • Opacity (α) • Grid size (fg) • Color Jitter (jh, js, jv, jr, jg, jb)

  18. Experiments in Style Source Image

  19. Experiments in Style Impressionist

  20. Experiments in Style Expressionist

  21. Experiments in Style Colorist Wash

  22. Experiments in Style Pointillist

More Related