Collage shading system

For the last few years I have been working alongside Barb Meier and my peers from her computer animation courses to make a short film, which partly takes place in an alternate world inspired by a child’s drawings. To create an effect of being inside a drawing, I designed and implemented a non-photorealistic shading system in Maya that renders 3D objects as a collage of flat textures. The film is still in production, but here are a few early tests I made while working out the kinks:

Models, animation, and most of the textures are by my friends in Advanced Animation Production at Brown.

Behind the scenes

In normal 3D rendering, textures wrap around objects and follow the rules of perspective:

My collage shading system does not do this; rather, textures stay flat on the screen, regardless of how the surface is shaped or how you’re looking at it:

These flat textures move, rotate, and scale to follow the surface as it moves across the screen:

Some more technical details:

Each of the three sides of the cylinder is filled with its own flat texture image (a camera projection). I call each of these surface regions a facet. Each texture moves across the screen to track a particular point in its facet, and orients itself to (the projection of) a vector in the facet’s transformation space.

The shading network is generated based on an input image, which specifies all the parameters of the shader. To create this image, I start by painting unique colors on the model’s UV map to specify the boundaries of the facets. Then within each facet, I add patterns of specially-colored pixels that specify which texture files to use, how the projections should be oriented to follow the 3D surface, and how much to blur between facets. My software then interprets that image to generate the shading network. Here’s the image that generated the bird’s shader: