Working with Nitrogen Studios’ team on their first feature length animation Sausage Party, Christos Obretenov, founder of LollipopShaders, provided custom shader development to solve both artistic and optimization challenges for the movie rendered in Pixar's RenderMan.
We had many challenges on the movie, both creative and technical, the 2 examples below illustrate just a couple of the many challenges we had to solve. With limitations in time and resources, like every production, creative problem solving played a big role on this project.
Challenge: Rendering Glass Characters
Laura Brousseau, Senior Lighting Supervisor, talks about the challenges of rendering glass characters on Sausage Party:
“One of the challenges in making the film came from our glass characters. Specifically glass characters that had their faces located on the surface of the glass. This unique challenge presented us with a few different problems from a shading standpoint. We needed to come up with a creative solution to having the bottles appear to be made of transparent glass as well as filled with liquid without detracting from their facial expressions and acting.“
Starting with RenderMan’s factory glass shader, we added some custom modifications for the team to reach their visual & optimization goals including:
• custom backface and opacity “hider” to hide the internals of the glass geometry
• refraction mask functionality to view other layers behind glass (used on eyes)
One of the characters to utilize the glass shading was “Firewater”, some concept art of his design and final renders below:
Concept art of Firewater's mouth and brow movement
Kevin Phibbs, Surfacing Supervisor, describes the challenges of rendering all the ground and floors in the movie:
“In the production of Sausage Party the floors and ground were major focal points of the film. Not only did they have to look good from an artistic standpoint, they had to hold up to the extreme close ups due to the scale of our characters. To achieve this look we incorporated custom shaders into our workflow created by Christos Obretenov of LollipopShaders. These shaders gave us tremendous power and flexibility in giving us the specific look we desired.
The images below are examples of our custom, multi-purpose, layered shader, that was used to create the look of our Mexican Cantina floor. With this shader we were able to stack and "layer" our textures one on top of the other similar to the layering system in Photoshop. This gave us great flexibility if we needed a different material or look in certain areas or if we needed to add cracks or stains in specific places.”
Look Development of Floor Test
Besides artistic flexibility in the design of the layered floor shader, the initial motivation was much more optimized render times: the factory shaders that ship with RenderMan for Maya offer great flexibility on their own, but when many layers were combined (which were needed for the complex floors), the render times shot through the roof. We developed a much more efficient layering system that was streamlined for Nitrogen’s particular workflow for the floors. Then we kept adding to it based on feedback from the users with complex masking on each layer, texturing placement, and ray-traced occlusion effects for selected areas.
Final Render of detailed floor in "Douches Lair"
Ultimately, the layered floor shader was used on other assets as well as a general optimized layered shader, like the labels on the glass characters that required efficient multiple layers.
Final render “Saving Private Ryan” scene with flour & occlusion on optimized layered floor shader
Concept Art of Floor Designs
At the very early stages of production we worked closely with the art director and design team in designing all the different floor sections of the movie in great detail as can be seen by these concept drawings, with photo reference. Each section of the supermarket had very strong production design themes that were quite different from each other, so the floors had to exhibit that direction.
Interface
Some examples of the interface of the layered floor shader in RenderMan and Maya, including layering masking, and specular sampling tests.
Occlusion on Flour “Saving Private Ryan” Scene
Seperating Direct & Indirect Specular Sampling on Shaders