Mike Oliver, Technical Art Director
[Leading into the launch of Rise of the Tomb Raider, we’ll feature a variety of developer blogs that lift the curtain on the creation of Lara’s first great tomb raiding expedition.]
One of the primary goals we try to achieve in Rise of the Tomb Raider is to create realistic and believable worlds for Lara to live in. This always involves a ‘Woman Vs. Wild’ aspect where Lara’s environment is the antagonist.
In Rise of the Tomb Raider, one such environment is a perilous snow-capped mountain. One of the many challenges associated with this type of environment is creating a way for Lara to interact with her surroundings in a realistic and believable manner. Our solution was to create an interactive snow simulation that would allow Lara to leave trails as she walked through the world and create trenches for deep snow drifts.
We explored many different approaches to solving this challenge, such as parallax decal mapping and traditional 2D and 3D particle systems, but they didn’t sell the interactivity or reach the quality we were after. After much experimentation and iteration the deformable terrain system was created.
This system allowed artists and designers to define areas of terrain that are deformable, giving characters, animals and objects the ability to interact with their surroundings. This technique was achieved through a dynamically generated height and normal map, which displaced vertices and smoothed the surface, forming the peaks and valleys of the terrain.
Throughout the development process we ran into several ‘snags’. The largest challenge being the density of vertices within the terrain. Meshes were generally too sparse or dense, causing the deformation effect to fail. Our solution was to manually tessellate meshes to an optimal density, but that quickly became a performance and memory issue in large spaces. Additionally, this process made iterating on levels difficult for artists. The solution was dynamic tessellation. Dynamic tessellation automatically increases the density of a mesh within a given range from the camera. This provided an effective solution and had the additional benefit of keeping our performance and memory budgets in check, while allowing artists to freely iterate on their levels.
Another challenge was Lara’s surroundings never affecting her. Lara could move through the world with ease, oblivious to what she was interacting with. We rectified this by dynamically adjusting her movement rate and animation based on the depth of the deformation. Lara would now slow down and struggle through deep snow, grounding her in a believable world.
Our final challenge was that players would run around until everything had been flattened. Although realistic, this was not very aesthetically appealing. Our solution was to add a reset timer, allowing the deformed terrain to naturally ‘fill in’ over time.
Oh, as an interesting tidbit during this development process, we held a motion capture session of Lara making snow angels. Unfortunately we never managed to use them in game!
Another interesting challenge in Rise of the Tomb Raider was to take our high impact moments and add an additional layer of visual interest. We wanted these visuals to not only help reinforce the believably of the moment, but also provide a quality that is not found in games. One of the moments we chose was creating an avalanche that forces Lara from the mountain.
This moment required a real time solution, meaning no pre-rendered cinematic sequences. We needed to utilize all the features of our engine, make changes to the world and allow for Lara’s costume updates, without expensive and time consuming cinematic edits.
During our early concept phase we tried several combinations of mesh rigs and in game particle systems to no avail. We struggled to hit believable movement, interaction, and visual quality while staying within our budgets. Our traditional techniques were not providing an acceptable result so we looked towards filmic techniques as a solution. The goal: simulate a realistic avalanche using fluid dynamics and integrate it into our real time environment.
This new direction provided a whole new set of challenges to tackle. How do we create it? How do we integrate it? How do we handle characters, level geometry, camera and lighting? What about performance and optimization?
Our first task was deciding how to view the avalanche in a real time environment. We looked into large sprite based flipbook animations, 3D textures and Bink video playback. In the end we chose to use Bink video. It was already available in our engine and was proven to be very efficient with memory management. What we did not know was the cost of decoding and drawing. After some profiling we concluded that the decoding and draw averaged less than 1ms per frame, making this a very viable solution.
Next we looked into several industry standard packages to simulate our Avalanche. We decided to use Side Effects Houdini. Houdini is a fully featured 3D software package that specializes in visual effects. It has a fluid and flexible visual scripting workflow that allowed us to easily craft the look and feel of our effect. For the avalanche, we utilized a mix of particle and pyro simulations with custom shaders to achieve the final result.
Once we had a viable playback mechanism and a visual look we needed to create an efficient and iterative workflow. Our largest concern was the amount of change the geometry, lighting and camera would undergo throughout production, something we wanted to avoid as much as possible. In order to help alleviate this, we worked with various disciplines to set dates when assets would no longer change. We also heavily utilized FBX and Alembic formats to help export any asset updates directly to Houdini.
Our next step was to light and render the final sequence. With Rise of the Tomb Raider’s physically based rendering pipeline, this was easy. We were able to use our existing HDR environment maps and lighting information in Houdini to replicate our in game lighting conditions. Houdini gave us the power to render out all the assets into layers and make any necessary colour corrections as needed.
Compositing the layers for use in game was much more challenging. Traditional techniques involve layering elements on top of each other using hold-outs (alpha). However, any changes to geometry usually requires re-rendering layers to ensure that all the hold-outs align properly. Knowing that there would be significant iteration on the levels, we wanted to avoid as much re-work as possible. For this we looked into Depth Compositing. Depth compositing is a technique where each rendered image contains multiple samples of depth information, allowing for the layering of images without the necessity of hold-outs.
We explored the idea of integrating depth compositing but it was deemed too costly and time consuming given the development schedule. Knowing this limitation, we structured our shots in a way that would cause the least amount of re-work using traditional techniques. We avoided having the avalanche interact with translucent and dynamic objects such as characters, cloth, and foliage.
In addition to the Avalanche, this technique was used in several other areas of the game to help add that extra excitement and visual interest.
Technical Art Director, Rise of the Tomb Raider