Designing the Last of Us: 3D Materials and Shaders
Jonathan Benainous shares the details behind his pipeline for creating intricate materials using Substance 3D Designer.
New Galleries and Favorite Materials
It has been a process to get to this point. I first released 18 galleries mostly focused on environment art. These galleries showcased the results that we have in-game and were the culmination of everyone’s work – the modeler, the texture artist, and the lighting artist, as well as all the other artists – that helped us achieve these levels.
In the eight galleries I will release in the coming weeks, the focus will be solely on material creation. These galleries will be dedicated to breaking down my process and showcasing how I’ve been able to author a vast number of materials on this project alone. The last time I checked, the figure was around 100 – with most of them created during the last year and a half of production.
It’s difficult for me to choose which material was my favorite to create. I really enjoyed doing all the work on the gates in front of the Capitol Building and its surrounding monuments, as well as creating the stained-glass dome inside the rotunda room. I love creating patterns and shapes. It’s something that I’ve always found interesting and challenging. I’ve been using Designer for years now and, with practice, it has become my go-to program to create intricate materials.
I achieved the look of the gazebo using multiple materials. Based on metrics, I created two trims matching the scale of every ornate part, a stone wall, and a tiling flat stone surface. All these materials blend with cracks, moss, and wetness.
Two up, xs spacing
Creating the main gate and railings leading to the Capitol Building in The Last of Us Part I*: I used an opacity mask and, by combining a height map with some parallax occlusion mapping in the shader, I was able to fake the thickness of the ornate details. The only geometry here is the frame of the door and the handrail. The rest is a texture made with Designer.*
Height and albedo breakdown of the gate material created for the Capitol Building entrance. Every shape and pattern has been created procedurally without using any external program.️
I used the elaborate tasks of creating the gates and stained-glass dome to take advantage of the versatility of Designer and all the procedural aspects of it, like how you can change an input and generate another variation quickly. It was also good practice for me, as I hadn’t created stained-glass before. I had to use a lot of references to see how the pieces of glass were welded together, and so on. I tried to mimic the imperfection of stained-glass, as it’s never quite perfect. There is always something that does not align, and it can appear old and dusty.
I had about 15 materials to create just for the dome itself, as well as all the ones further down the line on the same scene. I had to think about a consistent method in which to make them all, without having to redo things by hand each time. My solution was to create a generator, which saved me weeks of work. Seeing as I’ve used Designer a lot, I was able to visualize the results in my head, and I knew the steps I needed to take to get there. In this case, I knew that I wanted to have control of the colors, the outline, and the fragments between these different pieces of glass. I already knew that I needed a mask with a few colors, grayscale values with flat colors, and an outline. And with these three masks, I was able to have total control of everything. Then I was able to detail the surface itself, the metal frame, and change the color of each stained-glass design slightly. Just by changing these elements, I was able to get a unique result instantaneously, without having to jump into the graph and change things again.
As you can see in this video, by only changing my input files, I am able to procedurally generate as many variations as needed.
The same graph was used to create all the materials visible on this board. It works the same way for unique patterns like the discs and for tileable textures.
In a similar way, I saved time with another generator I created where I could create decal and tileable textures. It’s a bit less aesthetically pleasing than the stained-glass because it’s just a Rebar material, like you see when concrete is damaged. However, the generator was interesting to create because it is possible to generate many different types of decals that are either tileable or unique. It’s also possible to get rid of the opacity mask and have a different Rebar texture that can be completely dissimilar from the next. This is done by tilting the rebars or changing the thickness, offsetting them differently, or modifying the scale, etc.
The graph comes with quite a lot of exposed parameters and allows you to procedurally create different types of decals as well as tileable textures.
Here are some variations created with the generator and rendered in Marmoset.
Overcoming Technical Challenges
Overcoming Technical Challenges
The technical challenge I was presented with involved the number of intricate tileable, trim, and carpet materials that I had to create for the Capitol Building interior. This challenge was one of the primary reasons why I was given this task by the directors; they knew that I enjoy doing this type of work. This isn’t the case for a lot of people, as it can be overwhelming working from a detailed reference such as the Capitol Building.
Here is an overview of some of the elements from the height library I procedurally created on the project. Having all these shapes and patterns available to kitbash ornamental textures in Designer truly helped me to speed up my process down the line.
Using some of the shapes from the height library I was able to make these ornate paintings in Designer. I simplified some of my elements with a quantize and used these grayscale values to make paintings with a brush stroke effect and distortion.
It can be tough to know where to start, and I had to break the reference down and simplify everything in my mind. For example, I looked at a room and asked myself: are there any tileable textures? How many trim textures should I create? Which parts could be 1:1 baked assets? I also considered the metrics. I worked closely with my modeler, Gabriel Cervantes, to ensure that everything fit exactly to match the texture. I spent a lot of time just looking at images and references and thinking of how I could make the intricate details in a smart and efficient way.
This video breakdown showcases some of the shader and blending work done in the rotunda room. One of the main challenges in this room was to create this intricate floor. After creating the shader in a proprietary software, I’m using the RGB channels of my vertex color to blend the different texture set I created according to the way my shader has been set up. It allows me to add cracks, dirt, and wetness to the floor.
The colorful mosaic trim was one of the main materials used to make this floor come to life. It is made of mesh floaters mapped and layered on top of each other.
Reimagining the Game, Staying True to Its Roots
Reimagining the Game, Staying True to Its Roots
It was important to me to stay as close as possible to the references that we were working from. I wanted to preserve the details such as the ornaments, patterns, and trims – as well as the scale of it. This meant ensuring that the measurements from the modeling were also present in the texture. No upscaling or downscaling and finding a way to have a constant texel density across the scene. I spent quite some time with Gabriel Cervantes to make sure that each detail respected its original ratio. This was the case for the building’s exterior, but the interior also contained many details that were just as challenging. There were many marble floors and complex patterns carved in the stone, as well as the pinnacle, the main stained-glass dome..
In this breakdown, you can see the way I created these coffered ceiling instances. The bottom part of the texture is a tileable trim mapped on the edge of the square mesh while the center part is mapped in the middle. Light fixtures are 1:1 baked assets.
The Last of Us Part I is a remake and we wanted to respect and preserve much of the original game. We conserved all the gameplay space, to ensure the same layout and level design. However, whenever we had the opportunity, we tried to challenge the visual and propose new ideas. For instance, in some places we decided to completely remove some windows because we wanted to have the main lighting coming from the top of the dome. Other times, we wanted to add something more blue, cold, and a little eerie.
We had the freedom to rework certain environments as long as the composition of the scene didn’t change. When working with Todd Foster and Jon Schmidt – Lead Environment Artist and Lead Texture Artist, respectively – there was one cut-scene in the original game where you, as the player, would exit from a subway station, but that environment (a small downtown area) didn’t make sense to us. We decided to modify it, making it an industrial area. We preserved the composition and the axes, but we were able to add a more interesting environment with a few new storytelling elements. We also really enjoyed improving certain visuals from the original, while always staying true to the heart and soul of what was initially there.
We have a highly diverse group of artists on the environment team. Environment Texture Artists focus on shader creation, texture creation, and UVs. Modelers are in charge of creating the modeling for the buildings, the ground, and the assets, and work closely with the Level Designer. Their collaboration ensures that the gameplay space is well respected. Each level of the game has two main artists: a Modeler and a Texture Artist. The pair work together from start to finish to ensure the delivery of the level. Of course, they also collaborate with Lighting Artists, FX Artists, Wide Artists, and other team members.
When it comes to my role, I spent many years as an Environment Artist before becoming a Material Artist. What I do now is more environment work, and I am able to combine my knowledge of the two in my day-to-day. I create all the materials and the shaders, but also have a lot of input in the modeling aspect of creating the environment.
Advice to Artists
Advice to Artists
My advice to artists would be that it is good to start small, and with what interests you. In my own journey, I always tried to do what I was most interested in at that moment in time. At some point, I wanted to learn how to make sci-fi stuff. So, I started watching a lot of tutorials and practiced by experimenting. Each time, I began with a small project. When I started using Designer back in 2014, I began with very simple projects, like, “How to Make a Brick Wall” and “How to Make a Forest Ground”. Starting with simple projects such as those, I built my knowledge base into what it is today.
Another thing to remember is to take your time and create quality work, rather than to rush its delivery. Focus on producing art that people are going to remember. It might be the case that you won’t release your work very often, but when you do, it will be memorable because of its high quality. It’s difficult, but it’s important to keep a level head; do not get overwhelmed in thinking that if you are not producing work fast enough, or that you are not good enough. Interestingly, even once you’ve been in the industry for some time, that feeling doesn’t subside. That is why you must consciously choose to remain calm and do things at your own pace. The journey of learning and practicing your craft is the most important part of it all. In time, it will all come together.
If you would like to hear more about Material Creation in The Last of Us Part I – Jonathan Benainous and Jared Sobotta will be giving a talk at GDC for Substance Days on March 21, 2023. During this presentation, they will give insight on their processes behind the creation of architectural and organic materials, as well as break down the close collaboration between Environment and Texture Artists when creating complex environments.
Meet Jonathan Benainous
Jonathan Benainous is a Senior Environment Texture Artist at Naughty Dog. He started in the industry 16 years ago and has worked on AAA games such as Heavy Rain, Horizon Zero Dawn, and Assassin’s Creed Odyssey.