After seeing the Disney Pixar short, LAVA, there was no doubt in my mind that the environment that was showcased was gorgeous and the graphics was looking really defined. While many things were very interesting about the short, what drew me in particular was the technology behind the graphics. As luck would have it, my friend Brandon who is a Graphics Software Engineer worked on the short and kindly help me shed some light about his role in LAVA and the difference between coding for a feature and a short in his experience.
1. What was your role in the short?
I wrote some shiny new code that allows for “deformable vector displacement,” to help create ridges on the volcanoes in the short. Displacement is a common Computer Graphics technique to add geometric complexity by “displacing” the geometry using a texture. This texture, usually a height map (black for low, white for high), allows the shading TD to control some of the more fine-grained look of the asset, and allows for details that normally require many polygons. Vector displacement is a specific flavor of displacement that allows for surface deformations in more directions than “out” and “in.” The “vector” part of “vector displacement” means that you can really displace the surface by a 3D vector. This is less common than a scalar displacement, as it requires more math, is slower, has artifacts if not handled correctly, and has weird edge cases. Deformable vector displacement means that the vector displacement authored on the asset moves with the geometry.
For Lava, the ridges on the volcano really need vector displacement to create the look that we are going for. Our volcanoes move and deform, so any displacement we have needs to follow the surface in a way that makes sense. We had some uses of non-deformable vector displacement on Brave, so we were able to reuse some key tech from Manuel Kraemer, another Tools Software Engineer.
4. Deformable Vector displacement: example of how it was used or on what elements it was advantageous?
Deformable vector displacement is used primarily on the two volcanoes, Uku and Lele. It helps keep geometric complexity down, and allows shading TDs to create ridges without modifying the base geometry. It really allows for the look we are going for on the volcanoes – it’s a little hard to describe what Lava would look like without the tech, but I’ll just say that it wouldn’t look quite right.
5. What was Lava’s main purpose? Is it about showcasing technology?
That would be a good question for Jim Murphy (Director). In general, Pixar shorts aren’t exactly there to showcase technology – it is definitely a part of all Pixar productions to use new technology, and shorts are often early adopters of new tech. I would say that all Pixar shorts show the story and idea the director has, and that sometimes calls for new technology.
6. Did you run into any weird challenges working on lava?
Lava’s quite interesting as the scale of the assets are huge. Uku is both a set and a character, which means that he has to be finely detailed and also look good from afar. For me, this means that the geometric complexity of Uku has to be manageable, so shading TDs use displacement quite heavily on Uku.
7. Do you talk to the artist about what they want before you code something up or do you decipher from look/ style and functions?
I mainly worked with Shading TDs (primarily Byron Bashforth) to figure out the technology they need to create the look of the show. The code was fun to write – it took a bunch of different subjects I took in school and mashed them up together. It took a dash of calculus to make sure I was getting the correct derivatives to create a consistent space to deform the model in, some linear algebra to manage transformation spaces, and computer science to tie it all together and make it not slow.
Along the way, we had a bunch of questions like “if the quad were to shrink, should the displacement also shrink?” It makes sense in some contexts, and not others, but eventually we settled on something intuitive. We also support sculpted models from Mudbox and ZBrush as ways to author displacements, and it’s interesting that they both have different ways of subdividing the same model. (Hopefully OpenSubdiv makes this issue go away in the future.)
8. Any big difference between coding for shorts or features?
That’s a pretty interesting question. Shorts are a good place to try new things, both creatively and technologically. A lot of the technology we create for shorts is intended for use with future feature films. That being said, a decent amount of tech we actually create is really only for the short. We’ll try to use some new bit of technology in our production setting, and work on getting it to… work. We find lots of shortcomings, bugs, and issues we didn’t foresee. The short still has to be made, so we’ll write some throwaway code, or try new directions during the production of the short.
Though we may not reuse some things we created technologically for the short, we acquire the experience and knowledge of trying things in a production setting, with real assets, shots, and schedules. We learn how the technology can be used, and where it’s appropriate to use it. For shorts, I would say that the coding we would do is more experimental, and is very similar to early stage tech development of similar tech on feature films.
9. You role in the pipeline. Do you have to wait for assets to test or code up independently?
I started without assets, but before I delivered my code, I would be using real assets as they came in, to really make sure my stuff worked on the real thing, and not just a teapot. Assets are definitely nice to use.
Born in Los Angeles, CA, Brandon recently graduated from UC Berkeley with a M.S. in Computer Science in 2013. He is a Graphics Software Engineer working at
Pixar as part of the Tools team, specifically on shading tools. In his spare time, he enjoys making computer keyboards and playing video games. Two interesting things about him is that he once had a top secret security clearance and he likes Pusheen. He sometimes uses Pusheen as a texture test, so he has a collection of renders of Pixar characters with repeating Pusheens patterns on them. His favorite food is Tonkotsu Ramen.
Brandon’s Portfolio: http://brandonwang.net
*Disclaimer: This interview is in no way formally associated with PIXAR Animation Studios or Disney Corporation.