← Back
© Pixar 3D ARCHIVE
Toy Story 2
Shader function in Renderman Geppetto Software

Buzz Lightyear

Film: Toy Story 2 Director: John Lasseter, Ash Brannon, Lee Unkrich Year: 1999
Toy Story 2

Buzz, Woody, and their friends return while Andy leaves for Cowboy Camp, leaving his toys to fend for themselves. The situation changes dramatically when an obsessive toy collector named Al McWhiggin, owner of Al’s Toy Barn, kidnaps Woody. In Al’s apartment, Woody discovers that he is a highly valuable collectible from a 1950s TV show called Woody’s Roundup. There he also meets the other precious toys from the series: Jessie the cowgirl, Bullseye the horse, and Stinky Pete the prospector. Andy’s toys organize a daring rescue mission, Buzz Lightyear meets someone who can challenge him, and Woody must decide where his true place—and his heart—really lies.

Innovation: Shader function in Renderman

In Toy Story 2, Pixar sought to significantly raise the level of visual realism while maintaining the stylized aesthetic established in the first film. Characters were shown in closer shots, under more complex lighting conditions, and alongside newly introduced human characters whose skin needed to appear more lifelike and nuanced. This required materials to exhibit subtle surface variation rather than uniform, flat shading. To address this challenge, Pixar expanded the use of shader functions within RenderMan to define the final appearance of materials. By layering fine-grained detail over the base geometry, shaders made it possible to simulate the visual complexity of real-world surfaces—particularly human skin—without increasing geometric complexity, enabling the depiction of pores, sweat, moles, freckles, and other imperfections that enhanced realism and emotional credibility.

Shader functions in RenderMan operate as programmable procedures that determine how each point on a surface responds to light during rendering. Using the RenderMan Shading Language (RSL), technical directors wrote shaders that combined multiple computational elements, such as procedural texture generation, displacement calculations, and physically inspired lighting models. These shaders were evaluated at render time for every micropolygon generated by the REYES engine, allowing fine surface variation to emerge independently of the underlying mesh resolution. Parameters within the shaders could be adjusted to control scale, intensity, and distribution of surface details, making materials highly adaptable across different characters and scenes. This modular approach allowed Pixar to iteratively refine material appearance, separating surface description from geometry and animation, while keeping the production pipeline efficient and scalable for a feature-length film.

Innovation 2: Geppetto Software

Geppetto is a character rigging and control system that allows technical directors to define structured hierarchies of bones, joints, constraints, and deformers to drive a character’s mesh. Animators do not manipulate the mesh directly; instead, they interact with high-level controls such as control curves, sliders, and handles that represent meaningful actions—bending a limb, opening a hand, or shaping a facial expression. The system automatically calculates the resulting mesh deformations, maintaining volume and natural articulation through embedded rules for skinning, joint influence, and elastic behavior. Geppetto also supports layered control, enabling multiple simultaneous effects such as secondary motion, squash-and-stretch, and nuanced facial expressions to coexist without interfering with the base pose. Constraints and procedural deformers allow animators to enforce realistic limits on joint rotations, maintain contact between characters and objects, and simulate subtle interactions like clothing or flexible toy parts. By providing both hierarchical rig structure and programmable controls, Geppetto allowed animators to achieve complex, coordinated movements while keeping the rig manageable and adaptable across a wide variety of characters.