Friday, August 7, 2015

Problems with Matte Painting and Multi-Plane Effects in Maya

My current production (more on that later, I hope!) is making heavy use of painted backgrounds and flats to flesh out the world of the show. To get these to look correct through a Maya camera, one technique we've used is to import the Maya camera (and some NULLs) directly into After Effects, then attach the paintings as 3D layers in AE. But some paintings need to be rendered out of Maya because the painted geometries can be non-planar, they intersect each other, and so on.

We're using projection to get the paint onto our geometries. To do this, we set up a "paint projection camera" that views the entire scene, we render standin objects from that camera, and paint on top of that render at high resolution until it looks like we want it to look thru our "scene camera" (which of course might move through the scene). Once the painting looks good, we project the finished painting back onto the original standin geometries using a Maya projection shader through the paint projection camera.

It has taken me a long time to figure out the magical combination of Maya nodes to actually get the paint (and its opacity) to "stick" to the geometries. The default and obvious things to try simply didn't work, with the weirdest artifacts to boot. I tried googling things like "maya projected paint and alpha are different" and "maya matte painting problems" but got no results; hence those terms in this sentence and this very post!

Rather than talk through all the testing, I'll cut to the chase. Here's the shading network that works for us:

A functional shading network for projected paint (and alpha) in Maya

Walking through it backwards: We start with a Lambert shader. Diffuse = 1, with both Color and Transparency are coming from the painted texture. Note that to "light" the paintings we use an ambient light with Ambient Shade = 0 so that the rendered colors match exactly what the painter created.

Both the Color and Transparency come through their own projection nodes. We need two of these nodes because I could not get the transparency passthru of the projection node to actually pass through the transparency of the texture file no matter what I tried. But they both reference the same camera and are identical copies of each other in every way.

The file node references, in this case, a PNG image with alpha. I tried using the file node's Out Alpha parameter, but when I inverted that and passed it through a projection, it always ended up squeezed relative to the color channels (like a subtle non-proportional x scaling was applied). This made no sense to me and led to slight misalignments between the paint color and alpha that showed up as mysterious white and black streaks near the edges of the paint.

I truly believe there's a bug here in how Out Alpha is processed from the file node, because using Out Transparency from the same file node worked just fine. I also think the behavior of the Transparency pass thru on the projection node is either broken or quite counter-intuitive (aka: if you project both Color and Transparency through the node, they should both get transformed identically and remain accurately registered).

I hope this is helpful for any of you trying to get paint projected onto objects in Maya. If anyone has figured out other successful methods, please share them!

Sunday, February 23, 2014


19 years ago, a colleague and I began designing and programming a new animation system at Rhythm & Hues Studios. More engineers joined soon thereafter as the studio put its full weight behind getting voodoo up and running.

17 years ago, voodoo officially went into production. The first film I used it on was Mousehunt, where because of my insider's understanding of the tool I was tasked with rigging the CG mouse.

2 years ago, voodoo was used to produce was the Academy Award-winning Life of Pi.

And last week, four of us received a Technical Achievement Award from the Academy of Motion Picture Arts and Sciences for our contributions to voodoo!

Other than the UNIX command-line tools, I can't think of another piece of software that I use which is not only still kicking after 17 years but thriving. I mean, Richard Parker? That was some high-level business. Certainly a far cry from that little mouse. 

I wish I could take credit for the artistic successes and incredible longevity of voodoo, but I left R&H in 1997. Any impact I had was in the original design and in helping hire excellent people to take over after me! My fellow honorees and I had the chance on-stage last week to acknowledge all the artists and programmers who worked tirelessly with voodoo over so many years to make it what it has become. But I want to do so again here. I am simply awed by what they've done with it.

And a note to you, 25-year old immersed deep in your own passions, doing something exciting and risky: you never know what's going to come of your explorations. This surprise award was from almost a half a lifetime ago. That's a long germination.

Press mentions: Hampshire College - Boston Globe - WAMC 

Friday, May 3, 2013

Bit Films Summer 2013 Internships!

The summer 2013 intern info sheet is up -- we're getting close to finishing TUBE and have our new live-action VFX project (SEED) as well!

Apply by Friday May 17.

Monday, April 8, 2013

SEED principal photography completed

A scene from "Seed" with actors Milan Dragicevich, left, and and Bria Sutherland, right.
(photo by Dan Overton)
Our twenty-plus person crew occupied Holyoke's Wauregan Building throughout the last weekend in March and completed production on SEED.

We are now moving into post-production. More to come!

Tuesday, April 2, 2013

CALDERA is now online!

Our most recent short CALDERA is now available online!

CALDERA premiered at SXSW in 2012, was officially selected for SIGGRAPH AsiaSeattle Int'lPalm Springs ShortsStuttgart Int'l Animation, and over 40 other festivals worldwide. It was awarded the prestigious Prix Ars Electronica Award of Distinction in Linz Austria, and garnered several other awards including Best Animated Film at Rome Independent, Award of Innovation at Seattle Int'l SIFF, and Best Short - View Social Awards.

CALDERA was helmed by Evan Viera (Director/Composer/Co-Writer) and Chris Bishop (Co-writer/Animation Supervisor) and was produced at Hampshire College over two and a half years. I co-produced and edited. CALDERA was the first film to go through our Bit Films Incubator Program, which we created after completing The Incident at Tower 37. In this program we invite orphaned independent films to be made on campus with the College's students and resources. 

You can read more about this amazing project in some of my prior posts, or at the film's main website.

Congrats to the whole team!