120 likes | 132 Views
Painterly Rendering for Animation. Introduction speaks of focus and detail Small brush strokes focus and provide detail Large strokes are abstract and background Addresses coherence in animation. Aims. Still frames should look like paintings Details abstracted by shorthand brush strokes
E N D
Painterly Rendering for Animation • Introduction speaks of focus and detail • Small brush strokes focus and provide detail • Large strokes are abstract and background • Addresses coherence in animation
Aims • Still frames should look like paintings • Details abstracted by shorthand brush strokes • Color breaks boundaries to create rhythm • Strokes should vary according to surface • Light should be exaggerated • Animation should maintain coherence • Images should not look like gift wrapped textures • Non-aim: Do not eliminate need for artistic vision but simply automate brush strokes
Basic Approach • Generate a set or particles that represent the surface • Depth sort in screen space and render front to back using painters algorithm • Stroke appearance: • Color, texture, orientation, size • Derived from information in a reference image or explicitly stored with particles
Generating Particles • Many possible methods, with different aims • Even coverage • More particles in interesting places • Their approach: • Break the surface into triangles • Determine number of particles based on area • Randomly distribute particles in triangle • Could generate entire set from particle system simulation
Brush Strokes • Image: Brush texture, with alpha • Color: Stored with particle or taken from reference image • Orientation: Stored with particle or taken from reference, shaded to encode surface normal • Size: Stored with particle or taken from reference image, but they don’t say how the reference image is created • Position: From particles position in screen space
Other Issues • Render separate layers and composite • Artistic direction • Frequently one layer per object, composite front to back • One light source, exaggerated colors to highlight light and shade • May or may not remove back-facing particles • If removed, fade in as they approach front facing • Some popping as depth sort order changes • Vague on fixes for this • Good: Handles large object motions well
Open Issues • Reducing model complexity (eg trees) • Doesn’t manage changing object sizes • Density of strokes will be wrong • Particle placement does not cover screen space equally • Fixing this may be hard for moving objects • Deformable brush strokes to follow edges
Real-Time Nonphotorealistic Rendering • Hardware methods for generating line drawings have problems: • Subject to aliasing • Don’t work for hand-drawn line styles (eg wavy lines) • Can’t easily extract visible segments • Paper presents fast methods for (probably) locating the important silhouettes
Finding Important Lines • Probabilistically finds some silhouette edges by randomly choosing edges and testing • Can improve by weighting edges by dihedral angle • Traces the edge graph to extend the silhouettes • For animations, trace from previous frame to find new silhouette edges • Use a modified Appel’s algorithm (1967) to determine visible edges • Appel’s algorithm walks along edges updating “quantitative invisibility”. QI=0 are visible
Rendering • Three approaches for rendering edges • Variations in line width or color, possibly depending on the depth of the segment (from QI) • Offset defined in tangent-normal basis for the curve • Textured stroke, obtained by widening each edge into a mesh and texture mapping • Surface shading using particle method • Even area distribution gives more particles near silhouettes • Place strokes along NormEye direction • Visibility from extension to Appel’s algorithm
Future Work • Was pretty much covered on Monday…