Inside Pixar's Shorts
The shorts at Pixar have traditionally served as a test bed for new talent and new techniques. Geri from Geri’s Game for instance, was the first Pixar character to use the then new subdivision surface technology. Pixar’s three most recent shorts, Boundin', One Man Band, and Lifted, showcase an assortment of RenderMan techniques.
The Boundin' short was designed with a rich environment and a strange collection of furry characters. The combined challenges were met with existing techniques that Pixar had used on previous movies (such as fur and deep shadows), alongside new techniques (like ambient occlusion) that were beginning to work their way into the RenderMan software and pipelines everywhere.
The lead character, a seasonally-woolly lamb, needed special fur treatment for his gleaming white locks. Standard fur shading techniques resulted in fur either too soft and fluffy or too hard and wiry -depending on the hardness of the RiCurve edges. The realistic look of lamb’s wool proved to be elusive, but eventually became a simple blend between hard and soft-edged versions of the fur. Shadows on the fur, for the lamb and other characters, used RenderMan’s deep shadows.
Other interesting effects challenges in the short were introduced by the elements: water and snow. The rain gave a collection of opportunities to show off special RenderMan techniques. First, when the lamb looks into the puddle, we see concentric rings and ripples. This shader was a reuse of previous work on Finding Nemo and works in much the same way as presented in the Raindrops on Glass HowTo: a surface and displacement shader working together to generate patterns of concentric rings.
The wet ground also provided the opportunity to reuse one of the oldest forms of RenderMan cheating: the reflection map. To render the reflections of groundhogs popping up during a rainstorm, reflection cameras were set up that rendered prepasses of the groundhogs. These images were converted to textures, then mapped onto the ground as reflection maps during the final renderpass. It is an age-old trick but one that saves a lot of expensive ray tracing.
The snow presented its own problems; namely, how to make it and what happens to it when stepped on. Modeling the snow was a combined effort; puny humans handled the modeling of the big complicated drifts, while procedural geometry was used to cap the sage brush (described a bit more below). Footprints in the snow were created using similar techniques to those presented in the Footprints in Snow HowTo. A shadow camera is set up below the ground to record a z-depth pass, which is then used to displace the snows surface downward. Once again, see the Footprints HowTo for more on this technique. The result is fluffy snow which is compacted underneath the feet.
The last interesting complex bit in Boundin’ comes from the ground itself. How do you texture a continuous, (nearly) infinite groundplane that comes straight up to the camera? Furthermore, assuming you can do this, how do you populate it with masses of unique vegetation that will not cripple rendertimes? First, the groundplane problem is solved using a combination of procedural textures and hand-painted low resolution control maps. This leverages the powerful “what versus where” approach to shading - procedural textures determining what, texture maps determining where. This technique combines the unlimited resolution of procedural textures with the directability of hand-painted maps.
To populate the ground plane procedural geometry was used to create volumes of sage brush. The sage brush locations were specified with simple proxy shapes which determined the rough volume of the final brush. Attached to this were procedural primitive calls that automatically generated multiple resolutions of sage brush, reducing the complexity of the brush the further it is from the camera.
Interestingly, Boundin' was the first use of ambient occlusion at Pixar. It was used across the set to give rich, partially-attenuated ambient light. In the case of the sage brush procedural primitives, ray tracing the full resolution sage brush would have been needlessly expensive for the small amount of detail it would have added. So, in the end, only the proxy shapes were used in the occlusion calculation to give soft contact shadows for the sage brush.
One Man Band represented a return to richly-shaded environments, after the stylized look of The Incredibles. For The Incredibles it was a stylistic decision to move away from this approach but One Man Band reclaimed that ground, creating hundreds of individual looks for the objects in the short. A relatively small team of 15 TDs and 10 animators set about work for 10 months.
The short was shaded entirely with Slim, with all the look development rolled into Slim templates for consistency of look and easy reuse. One of the first shading challenges was to give the ground plane a high enough resolution to withstand the close-up. A huge texture map was tested, but even at ridiculous resolution, gave insufficient detail for the close-up. A similar combination of procedural and image maps were used to overcome the limitations in map resolution. Much of the fine detail in the ground plane derived from procedural displacement shaders.
Lifted is the latest short to come out of Pixar. One of the most beautiful effects in the short is the translucency on the main character Mr.B. This jelly-like subsurface scattering required modification to the standard approach to computing subsurface scattering -how the irradiance gets computed. For traditional surfaces, irradiance is the sum of incident illumination on the surface of an object (i.e. the sum of all your light sources).
To give a more jelly-like appearance, each irradiance sample was changed to be the sum of the illumination along ray-marched steps inside the surface (see diagram 1). So for each point on the surface, march into the object a certain step length and calculate the irradiance at that point, for each light. Next, take this per-step irradiance and attenuate it by some exponential factor (Beer-Lambert Law) based on how far the light had to travel -both from the light to the sample point in the object, as well as from the sample point out of the object towards the camera.
The resultant irradiance is written to the original surface point, then the standard subsurface scattering diffusion calculations take over from there (ptfilter). The effect sounds expensive, but Mr B’s mesh was smooth and devoid of high-frequency details, so a modest 512x512 pixel irradiance pass was used. The result being a non-physical, yet jelly-like subsurface scattering output. Many additional outputs (bubble layers, masks, facing ratio, etc) were rendered and composited in Shake to give the final look for Mr.B.
ray marching to accumulating the irradiance
|gel effect||arms mask|
Fundamentals - Subsurface Scattering
HowTos - Using AOVs
Production Examples - RenderMan in Pixar's Pipeline
Library - Reflections And Refractions Finding Nemo