In 2006 I took a job with Newlands & Company (NC3D), a visualization firm that does a fair amount of trade in transportation projects. During my two years there, most of my time was spent leading animation production for one of our larger clients, The California High Speed Rail Association. Everything in this article is from my experience at that time, on that project. As with any tech company, I imagine things have changed quite a bit in the years since I left.
At the time I took the job, it had been a number of years since I had worked with pre-rendered images. I had been primarily creating real time lighting in games up to this point. The transition was somewhat tough, but strangely enough, one of the primary considerations of both real-time games and animation sequences are frame rendering times. I forget who to attribute this to, but I heard (probably on an FXGuide podcast) that animation studios all have a particular frame time that they are used to, and even as technology advances, they keep pretty near the same frame times. I suspect this has something to do with the expectation a person has for how long an image should take to render. It also probably has to do with how people are used to estimating time on projects.
We primarily worked in 3ds max using Vray as our rendering engine. We used Combustion and After Effects for compositing, as well as a number of support tools like Onyx (for trees), VirtualDub for previewing animation, Autocad for GIS work, and Photoshop for still images and textures. In addition, we had a number of in-house tools created by our technical director.
The lighting for most of the shots was to be idyllic, sunny Californian days. This was a fairly easy lighting task from a creative standpoint. I think the real story of lighting on this project was our movement from direct-only lighting, to a global illumination rendering pipeline -something I was not there to see the end of.
When I started, a common outdoor day lighting rig used 3 lights. There was a single, warm direct light for the sun and two, cooler direct lights, usually placed 120 degrees from each other, for sky fill. I worked with this rig for a while, but changed when I learned a great technique after watching Environment Lighting for Production by Tim Jones (Gnoman Workshop).

This image shows our 3 light rig in action. A link to the animation.
The technique he showed was how to use arrays of spotlights for sky dome lighting and ground bounce lighting. The arrays are created by placing spotlights in a dome shape. The lights in the sky array have a cool color and cast shadows down towards the center of the scene. The ground bounce light is created by making a dome array of warm, non-shadow-casting lights below the scene, pointing to scene center. I adjusted the ground dome light positions so that the light would come more from the bottom of the scene than the horizon and set the ground lights to fall off over a specific distance.
I found that by optimizing the number of lights in my arrays, and which of those lights cast shadows, I could get better render times than using a Vray dome light. The dome light (or environment light) can be a simpler way to work, but I needed the flexibility of the light array to optimize render times. It’s worth noting that noise in image sampling, global illumination, soft shadows and glossy reflections were major hurdles in keeping render times down. For that reason alone, we avoided using GI for most of our animations.

This image shows our dome light rig with area shadows. A link to the animation.
As I learned more about rendering and compositing, I wanted to introduce ambient occlusion into our render pipeline. Ambient occlusion is essentially a monochromatic shortcut for rendering soft shadows cast by large light sources, such as the sky, or the bounce light shadows in a diffusely lit interior. At first, I tried Vray Dirt to simulate this ambient occlusion effect, but I was not pleased the effect. It didn’t render like a sky shadow and it was slow to render smoothly. Mental Ray seemed to have a superior look and faster renders, but there were a number of problems with it as well.
The first problem with rendering an ambient occlusion pass, is that it takes extra render time and set up. This isn’t really a problem if there’s only one render layer, but we had many layers. The second problem we had using Mental Ray to render ambient occlusion was that the Vray Proxies we relyed on for our trees and other high detail objects, didn’t render accurately in Mental Ray. Only the low detail preview geometry of the Vray Proxy rendered in Mental Ray, so the renderings from Mental Ray did not composite accurately with our Vray renders.
After experimenting a bit, I was able to get the subtle sky shadows of an ambient occlusion render by setting the sky array lights to cast (Vray) area shadows. This definitely added to the render time, but it had a couple of key features:
1) No need to set up, render and composite additional passes.
2) Noise control on an area light is pretty simple, compared to noise control in a global illumination rendered animation.
At some point during my first year at NC3D, the growing complexity of our rendering passes made setting up those passes a significant part of our day. The system we had was essentially: The person in charge of the project would remember all the layer sets, Xrefs, mattes, special materials, frame ranges, etc. the animation needed, apply them and kick those off those renders individually. Often times the same xref file would be saved a number of times with a number of different parameters, to avoid duplicating scene data. It could sometimes take an hour or more to set up the render layers, and a single mistake would cause many lost hours of rendering, and artist time. This could be a huge problem, since we often had short deadlines for the animations, and were running near daily renders on multiple projects.
To compound the complexity of kicking off renders, we often had a large number of render layers to manage. Some layers were to help break up the scene to save memory, since we were working on 32-bit systems, with huge landscape textures. Other layers were to provide flexibility in the timing of elements. We had a number of high detail trains in our renders that we needed to time precisely, so it was often better to render these as separate layers. We also had large quantities of high detail cars, and people in the scenes, which needed their own layers as well. It was not uncommon to have 5 or more different geometry render passes in a single frame.
We looked at off the shelf solutions for render pass management, but our heavy reliance on Xref Scenes made most of those products unusable. The studio owner placed a high value on tools that were tailor made to our process, so it wasn’t difficult to convince him to invest in creating these tools. The technical director spent about two months in development of this tool before we could use it, but once it worked, we wondered how we ever got along without it. The tool continued to be refined while I was there, and became a critical part of our production process.
This is an important lesson for any company that produces art:
Great tools take a lot of resources to develop, but are crucial in empowering artists to make great art. In every project I’ve worked on, the availability, or lack of great tools has made a significant impact on the quality and speed of art production.
Toward the end of my time at NC3D we hired a studio art director that had extensive experience with global illumination rendering for animation. In addition, new features in Vray made GI rendering less noisy and faster to render. Those changes caused our render pipeline to move almost exclusively to a global illumination model.

This is one of our early attempts at using global illumination. In the animation, the moving objects were rendered with one type of GI, and the static objects with another. A link to the animation.
There were a number of production processes and techniques I wished I had known more about during that job, most of them relating to rendering or compositing. One of the biggest holes in our knowledge was in linear light rendering and compositing. I think we experienced a great deal of frustration in our compositing process due to not understanding linear light, image gamma, and how Vray was handling out of range lighting values.
Part of this problem was aggravated by our choice of the TGA output format, which doesn’t really support color profiles or high-dynamic range values. We tried using EXR files and HDR compositing a little, but we didn’t have the tools to quickly compile dailies and storage space for the EXR files looked like it would become an issue, so the process was abandoned. Had we understood how to properly set up HDR rendering and compositing with liner light, I think we would have seen enough of a visual difference to make it worth integrating into our pipeline.
Related to linear light compositing was our lack of standardization on physical light values and physically-based render effects such as the Vray sky. We simply didn’t have enough knowledge of how physically-based lighting worked and how to integrate it with our varying types of light sources. Currently, there are a number of excellent articles, and books available about liner light and physically-based rendering. It helps that a number of big rendering engines are enabling linear light as the default of how they work. One of my favorite articles on linear light is an FXGuide podcast with Master Zap from 2009.
One of the most important things I learned about lighting at NC3D is that all reflections are the same process of light bouncing. We break lighting into the categories of diffuse direct, specular, mirror, diffuse secondary, etc in order to optimize the rendering process. When I taught myself 3d in college, I understood diffuse direct, specular highlights and mirror reflections as three separate effects. When I was introduced to glossy reflections and global illumination in Vray, I finally understood that all reflections are “mirror” reflections, how they look simply depends on the (micro) surface of the object. As a by-product of this, I realized that a specular highlight is just an approximation of the reflection of a light source. I believe that my misunderstanding of surface rendering stems from the way I learned about 3d, which was: technique before theory. Had I learned more about optics and light when I was learning about 3d graphics, I would have understood what the tools were trying to simulate and known how to use them properly.