1 / 28

Non-Photorealistic Rendering Painting, Drawing, Sketching

Non-Photorealistic Rendering Painting, Drawing, Sketching. Admin. Reminder: no class Monday Optional review/Q&A session: Thursday May 1, 3 PM Reminder: final exam Monday, May 5, 9 AM Reminder: assn4 due Monday Late days okay, but not beyond 11:59 PM Wednesday. Recap: Stochastic Sampling.

zitkalasa
Télécharger la présentation

Non-Photorealistic Rendering Painting, Drawing, Sketching

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. Non-Photorealistic RenderingPainting, Drawing, Sketching David Luebke 16/7/2014

  2. Admin • Reminder: no class Monday • Optional review/Q&A session: Thursday May 1, 3 PM • Reminder: final exam Monday, May 5, 9 AM • Reminder: assn4 due Monday • Late days okay, but not beyond 11:59 PM Wednesday David Luebke 26/7/2014

  3. Recap: Stochastic Sampling • Sampling theory tells us that with a regular sampling grid, frequencies higher than the Nyquist limit will alias • Q: What about irregular sampling? • A: High frequencies appear as noise, not aliases • This turns out to bother our visual system less! David Luebke 36/7/2014

  4. Recap: Stochastic Sampling • Poisson distribution: • Completely random • Add points at random until area is full. • Uniform distribution: some neighboring samples close together, some distant David Luebke 46/7/2014

  5. Recap: Stochastic Sampling • Poisson disc distribution: • Poisson distribution, with minimum-distance constraint between samples • Add points at random, removing again if they are too close to any previous points • Jittered distribution • Start with regular grid of samples • Perturb each sample slightly in a random direction • More “clumpy” or granular in appearance David Luebke 56/7/2014

  6. Recap: Stochastic Sampling • Spectral characteristics of these distributions: • Poisson: completely uniform (white noise). High and low frequencies equally present • Poisson disc: Pulse at origin (DC component of image), surrounded by empty ring (no low frequencies), surrounded by white noise • Jitter: Approximates Poisson disc spectrum, but with a smaller empty disc. David Luebke 66/7/2014

  7. Stochastic Sampling:The Exciting Conclusion • Distributed ray tracing is an elegant technique that tackles many problems at once • Stochastic ray tracing: distribute rays stochastically across pixel • Distributed ray tracing: distribute rays stochastically across everything David Luebke 76/7/2014

  8. Distributed Ray Tracing • Distribute rays stochastically across: • Pixel for antialiasing • Light sourcefor soft shadows • Reflection function for soft (glossy) reflections • Time for motion blur • Lens for depth of field • Cook: 16 rays suffice for all of these David Luebke 86/7/2014

  9. Distributed Ray Tracing • Distributed ray tracing is basically a Monte Carlo estimation technique • Practical details: • Use lookup tables (LUTs) for distributing rays across functions • See W&W Figure 10.14 p 263 • Learn lots more about this in Image Synthesis David Luebke 96/7/2014

  10. Non-Photorealistic Rendering • Next topic: Non-Photorealistic Rendering David Luebke 106/7/2014

  11. Non-Photorealistic Rendering “Using a term like ‘nonlinear science’ is like referring to the bulk of zoology as ‘the study of nonelephant animals’” • Photorealism: age-old goal of graphics • Non-photorealistic rendering • Broadly, techniques for rendering that don’t strive for realism, but style, expressiveness, abstraction, uncertainty, etc • A terrible, terrible term that we’re probably stuck with • Better terms: stylized rendering, artistic rendering, abstract rendering David Luebke 116/7/2014

  12. Stylized Rendering • NPR is most commonly used to refer to graphics techniques that emulate a particular artistic style or medium • Impressionistic painting • Pen-and-ink (cross hatching, outlining, etc) • Colored-pencil, copperplate engraving, you name it • Cartoon drawing David Luebke 126/7/2014

  13. Toon shading • Toon shading is the term that we use to refer to cartoon-like rendering effects • Tendencies in cartoon/comic style: • Simple, flat shading (cel shading) • Two-tone (light/shadow) or three-tone (light/shadow/highlight) • Edge highlighting • Boundary (border edge) • Crease (hard edge) • Material edge • Silhouette edge David Luebke 136/7/2014

  14. Silhouette Rendering • Boundary (border edge) • Not shared by two polygons • E.g. the edge of a sheet of paper • Solid models usually have no boundaries • Crease (hard edge) • Shared by two polygons at a dihedral angle greater than some threshold (often 60°) • Or a vertex with two normals/two colocated vertices • Ridge or valley edges David Luebke 146/7/2014

  15. Silhouette Rendering • Material edge • Triangles sharing edge have different materials/texture maps/etc • Or just an edge that the artist wants to emphasize • Silhouette edge • Triangles sharing edge face different directions (towards/away from viewer) • Lots of techniques to find at runtime! David Luebke 156/7/2014

  16. Summary: Edge Highlighting • Toon shading (and other NPR techniques based on drawing) requires some edges be drawn or highlighted: • Silhouette edges • Mesh boundaries (always on silhouette) • Creases (ridge and valley) • Material boundaries • Find first at run-time, precalculate the others (unless object is deformable) David Luebke 166/7/2014

  17. Recap: Silhouette Edges • Surface angle silhouetting • Calc N●V, if below threshold  draw black • Best as a per-pixel routine • E.g., Assn4c • Also can do with a spheremap, or use a mip-map with top-level textures dark • Pros: • Uses the texture hardware  fast • Can antialias the resulting lines • Cons: • Line width depends on curvature • Doesn’t work for some models (e.g., a cube) David Luebke 176/7/2014

  18. Recap: Silhouette Edges • Procedural Geometry Silhouetting • Idea: render the geometry in such a way that the silhouettes “fall out”, e.g.: • Draw frontfacing polygons • Draw backfacing polygons • But draw them in (possibly thick) wireframe • Or draw them z-biased forward a bit • Or “fatten” them • Or displace them along their normals (“halo” effect) • Flip normals • Amount of displacement varies w/ distance (why?) • Perfect task for vertex shader! • Pros: relatively robust, doesn’t need connectivity info • Cons: Wastes some fill & some polys, needs antialiasing David Luebke 186/7/2014

  19. Results Wireframe Translation Fattening 40 fps 50 fps 11.5 fps Original Venus model : 5672 triangles, 66 fps David Luebke 196/7/2014

  20. Recap: Silhouette Edges • Image Processing Silhouetting • Idea: analyze the image after it’s rendered, and extract silhouettes (i.e., edge detection) • Perfect for fragment program! • Can help by rendering e.g. depth image, object-ID image, normal image David Luebke 206/7/2014

  21. Recap: Silhouette Edges • Silhouette Edge Detection • Idea: find silhouette edges geometrically on the CPU and render them explicitly • Brute force: test every edge to see if its adjoining polygons face opposite directions in eye space • Can speed this up with randomized coherent search • Most work, but gives the most flexibility in how silhouettes are drawn • GPU variant: • Draw degenerate quadrilateral at each edge • Use vertex shader to “fatten” quad into a “fin” when edge is on silhouette • Fin thickness based on distance to eyepoint David Luebke 216/7/2014

  22. Highlighting Ridge Edges • Clever related technique by Raskar: • Add “fins” to every edge at dihedral angle • Size fins according to distance to viewer • Again, perfect for vertex shader • Similar but more complicated technique for highlighting valley edges David Luebke 226/7/2014

  23. Drawing Lines:Outlining Polygons • Surprisingly hard to draw polys as filled outlines • Problem: depth buffer values of edge & polys same • 2-pass technique: draw polys, then draw edges • Z-bias edges forward or polygons back (glPolygonOffset) • Works okay, but has occasional problems • 3-pass technique: • Render filled polygon • Disable depth buffer writes (leave depth test on) • Enable color buffer writes • Render polygon edges polygon • Normal depth & color buffering • Render filled polygon again • Enable depth buffer writes • Disable color buffer writes David Luebke 236/7/2014

  24. Drawing Lines:Hidden-Line Rendering • Hidden-line vs. obscured line vs halos • Hidden-line • Draw polygons to depth buffer (not color buffer) • Draw edges using previous technique • Obscured (light, dotted, dashed) line • Draw all edges in obscured style • Draw polygons to depth buffer (not color buffer) • Draw edges using previous technique • Haloed line • Draw all edges as thick background-color lines • Draw edges using biasing, foreground-color David Luebke 246/7/2014

  25. Other Styles • Impressionistic or “painterly” rendering: • Sprinkle particles on object surface • Draw particles as brushstrokes • Can render images to encode normals, surface curvature, depth, color/tone info David Luebke 256/7/2014

  26. Painterly Rendering • More info if time permits… David Luebke 266/7/2014

  27. Other Styles • Hatching: • Store different cross-hatch patterns representing different tones as textures • Clever ways to use texture hardware to blend between tones at run-time • More info if time permits… David Luebke 276/7/2014

  28. Other Styles • “Graftals” are a general term used for strokes, decals, little bits of geometry • Dynamic placement of graftals to achieve certain effects/styles: David Luebke 286/7/2014

More Related