Painterly Rendering for Animation Barbara J. Meier Walt Disney Feature Animation SIGGRAPH 96 Introduction • Motivation: render animations in a painterly style • Goals – Eliminate “shower door” effect – Provide frame-to-frame coherence Painting Concepts • Character of brush strokes • Creating areas of interest – Exaggerate lighting – Vary level of detail – Vary brush stroke size, texture and direction provide rhythm to direct the viewer’s eye • Vary object edge definition Painterly Rendering Concepts • Stills should look like paintings – Details abstracted by shorthand strokes – Roundness conveyed by stroke direction – Color should break boundaries of the object • Objects should not have “gift-wrapped” appearance • Provide an energetic quality lacking in standard rendering Related Work • Paint by Numbers – Obtain images from a collection of brush strokes and get their position, color, size, and orientation from reference images [Haeberli 1990] • Hairy Brushes – Models brush strokes with splines and accounts for trajectory of position and pressure, dip and composition of the brush [Strassman 1986] Painterly Rendering for Animation • To maintain frame-to-frame coherence, represent object surfaces with points and map strokes to these points Painterly Rendering for Animation create particles to represent geometry for each frame of animation create reference pictures using geometry, surface attributes, and lighting transform particles based on animation parameters sort particles by distance from viewpoint for each particle, starting with furthest from viewpoint transform particle to screen space determine brush stroke attributes from reference pictures or particles and randomly perturb them based on user-selected parameters composite brush stroke into paint buffer end (for each particle) end (for each frame) Generating Particles • Start with parametric surface and n particles • Tessellate to triangle mesh • Distribute pn particles within each triangle • Optional: store additional information with the particles such as color, size, and orientation • Optional: perturb points by some function Specifying and Applying Brush Attributes • Each brush stroke must have an image, color, orientation, size, and position. • Image: color image with alpha, typically uniform in all channels • Orientation, size and color: obtained from attributes in particles or reference image Reference Pictures • Encode information about surface geometry and lighting • Typically rendered images of particle set or geometry • Color reference: smooth-shaded with lighting • Orientation reference: normals encoded in color channels • Size reference: scalar values linearly interpolated from user specified range Overview Animating Parameters and Randomness • Randomness is important to achieve natural look in the painting • Perturb stroke positions and orientations • Image must maintain temporal coherence • Solution: associate seed with particles Results Results Results Creative Techniques • Render subsets of particles in layers – Rough underpainting with large strokes – Small strokes to convey detail – Layers of color to define form • Use image processing to isolate highlights and shadows for separate layers • Add several semi-transparent strokes to the same particle to achieve painterly look • Render objects as separate layers Creative Techniques • Use one light source to maintain focus in the composition • Use exaggerated hue and value variations to distinguish light and shadow area Layering Technical Considerations • Use image processing techniques to “grow” out the object in the reference image to prevent looking up into unrendered or anti-aliased regions • Blur orientation and size reference images slightly to prevent jittering from frame to frame • Encode orientation in relation to the surface (u,v) position, not orientation after camera transformation Technical Considerations • Storing attributes in the particles prevents aliasing problems from looking up values in the reference images • Back-facing particles must be rendered to prevent popping as orientation changes • Particles are depth-sorted, so strokes will pop, but the effect can be minimized by careful selection of brush stroke size and transparency Future Work • Incorporate painterly rendering into traditional scenes • Handle object size changes and deformation in an automated manner • Better particle placement in relation to both geometry and screen space • Implement longer, deformable brushes that can follow curves Conclusion • Brought together two previous rendering methods – Using reference images to define 2d brush stroke attributes – Using particles to define locations of brush strokes • Solved two problems of previous painterly rendering techniques – Images are coherent over time – Brush strokes stick to geometric surfaces, not the view-plane