Local Layering

Twining layers
Twining, layer 1 Twining, layer 2 Twining, layer 3

People

Abstract

Pants, virtual Pants, real
Pants, blue pants Pants, red pants Scarf Stuff
Local layering allows artists to stack layers like objects in the real world.

In a conventional 2d painting or compositing program, graphical objects are stacked in a user-specified global order, as if each were printed on an image-sized sheet of transparent film. In this work we show how to relax this restriction so that users can make stacking decisions on a per-overlap basis, as if the layers were pictures cut from a magazine. This allows for complex and visually exciting overlapping patterns, without painstaking layer-splitting, depth-value painting, region coloring, or mask-drawing. Instead, users are presented with a layers dialog which acts locally. Behind the scenes, we divide the image into overlap regions and track the ordering of layers in each region. We formalize this structure as a graph of stacking lists, define the set of orderings where layers do not interpenetrate as consistent, and prove that our local stacking operators are both correct and sufficient to reach any consistent stacking. We also provide a method for updating the local stacking when objects change shape or position due to user editing -- this scheme prevents layer updates from producing undesired intersections. Our method extends trivially to both animation compositing and local visibility adjustment in depth-peeled 3d scenes; the latter of which allows for the creation of impossible figures which can be viewed and manipulated in real-time.

Paper

James McCann and Nancy S. Pollard. Local Layering, ACM Transactions on Graphics (SIGGRAPH 2009), August 2009, Vol 28. No. 3.
local layering paper thumbnail

Videos

SIGGRAPH video
local layering expository movie
Blob example
blob example movie
Mouse example
mouse example movie

More Image Examples

Sunflower
locally-layered flower
Headlightning
locally-layered head

Application

(Source compiles and works on OSX, Linux; runs very slowly on Windows for some reason.)

Snapshot for app [OSX Binary] [Source]

Copyright notice