Leo Newman shared the workflow behind the Post-Apocalyptic Camp project inspired by The Last of Us 2 concept and explained how the soft shadows were made.
Hello! I’m Leo Newman, a Game Graphic Production student at Howest DAE. When I was younger, I fell in love with video games and game graphics. I started playing around with some map editors as my interest grew. When I got older, I realized that I did not only want to do this as a hobby but as an actual job, so when I graduated high school, I immediately signed up for the course at DAE. I aspire to become an environment and lighting artist because I’ve come to the conclusion that this is where my passion lies.
The Post-Apocalyptic Camp Project
This project was prompted by my final exam assignment for the Level Decoration course. We were tasked with creating a real-time 3D environment in Unreal Engine.
I was very inspired by the concept piece for The Last of Us II by Robby Johnson. The vegetation looked stunning due to the very realistic lighting. I knew recreating this would be a challenge, but I wanted to achieve something like this with greenery because I hadn’t tackled it like this before. Keeping the scene real-time had to be kept in mind, which made the challenge even harder. I had made a scene with vegetation before, but that scene did not run near 60 fps.
After some consideration, I decided to enhance the concept piece. Making another room that would keep in mind the aesthetic of the original work so that the two would coherently fit together. This would give the player the ability to walk around more freely while also giving me more freedom to add detail and story elements.
Initial Plan and Composition Setup
Initially, I was scoping for something way bigger, with the player being able to walk outside onto the bridge. However, due to time constraints and optimization issues, I was unable to make this plan come to life.
I first created a blockout to properly place the shapes and see how I could fit the room with the main shot. I then added an extremely basic lighting setup with a Sky Light and Directional Light. I usually do not spend too much time on this during the blockout stage because I can still change it to my liking afterwards.
3ds Max, Vegetation, and Texturing
All of the pieces, including the room, were made in 3ds Max. For this, I created a simple mesh consisting of the walls, the floor, and the trims. I cut out the doors and modeled the hallway. Looking back at it now, with the experience I have gained, I could’ve made these pieces modular.
The grenade launcher in my scene was made by me for my Game Asset Pipeline course.
Apart from that, I also created a couple of modular pieces. These were very basic because they only needed to be used for the building on the other side. They were also going to be mostly hidden by the vegetation making it unnecessary to add detail to them. Fortunately, this was also better for the polycount.
Most of the vegetation assets came from Megascans, more specifically, the pack called Megascans Abandoned Apartment. I did, however, model moss blades and some ivy leaves and scattered them using the foliage tool. I mostly used them in combination with the branches I had downloaded.
The hardest part was getting the lighting right, especially the soft shadows. Getting soft shadows to look right in Unreal Engine 4 is quite hard as Directional Lights cannot achieve it. I first tried with a static Sky Light, but the results were underwhelming. The color looked off and the baking took hours. I then opted for a ray-traced Sky Light, though this one was too heavy on the framerate and it ended up looking very noisy. I then imported a ray-traced Rect Light, lighting my whole scene with them only, no Directional Lights or Sky Light. This gave me the proper balance between performance and quality for soft shadows as I could decide where to have ray tracing and where I could turn off shadows. It gave me the ability to fully control every light and thus – my performance. It’s surprising how much you can get away with using lights with no cast shadows and low attenuation radius.
All of the materials I made to texture the meshes were produced in Substance 3D Designer: the moss, the concrete, and the mud. All other visible textures were downloaded from Megascans. To enhance them, I extensively used decals. These are great because they provide a lot of texture variation and details, with a very low fps cost. When greenery wasn't close by, I used decals for it instead. Additionally, I used vertex painting on all surfaces, not including props, to create even more variation. For the moss, I created a material that used the world alignment to add it to the top side of objects.
The Final Scene
To achieve something that I was content with, it was important for me to iterate on my design while keeping composition in mind. Taking screenshots along the way helps my workflow because I can compare previous shots to new ones. If I like it, it stays, if not, I’ll try iterating some more. When building a scene, I commonly think of what’s happening or what has happened, who’s living there, etc. Basically, things that help with the storytelling. In my case, I wanted it to be an old concrete apartment block, with people being safe from the dangers on the ground level. However, survivors would not be safe from other people entering their claimed territory. I wanted it to feel lived-in, so I added footprints, personal belongings, and evidence of damage. Sadly, I do not have a formula for that.
In the Post-Process Volume, I saturated the scene and added more contrast to make it look more cinematic. Some of the shots taken were slightly tweaked in Photoshop afterward, like changing the overall image to look bluer.
Overall, it took me approximately a week of work. The time was mainly spent on foliage and lighting as these were the main challenges combined with optimization. Also, as said before, some pieces could have been made modularly.
Special thanks to Naomi Adriaens and my teachers for giving me lots of feedback during the process.
You may find these articles interesting