Noah Baumann revealed the workflow behind the Rock Bottom project, shared the modeling technique used for the road, and told us how Smart Materials helped achieve the desired texture.
Hello! My name is Noah Baumann and I’m an Environment Artist from Germany. Currently, I’m studying at Howest Digital Arts & Entertainment and I just finished my second year, with this environment being my last assignment. I started doing game art as a hobby but needed a more competitive environment, which I thought I would get at school.
Inspirations and References
I started off by browsing a lot of ArtStation and Pinterest to look for concepts that I find intriguing. I ended up using the artwork made by Cupoi as a concept because it reminded me a bit of Mad Max. I’ve never done a desert scene before, and I thought this project would me to get out of my comfort zone.
As the concept was an illustration, it wasn’t true to life, that’s why I went on Google Earth to gather references to various deserts. I downloaded the 3D scans from Google Earth and used them to create the blockout for the environment – this gave me a good start to replacing all the white cubes with real meshes. Google Lens helped me identify the foliage types in my references, so I could gather references for the correct ones as well.
I modeled the ship in Maya. I split it into two parts: the main body and the wireframe, and imported them directly into Unreal without destruction.
Once in Unreal, I used the modeling tool to remove parts of both the main body and the wireframe to get the damaged look. A similar approach was used on other models in my scene, that way I could get unique meshes using just a small amount of assets.
For the containers, I used a more generic approach, where I modeled a modular pack to give me more flexibility to create my small slum.
Another interesting piece might be the road, which was entirely made in Unreal. I grabbed a rectangle from the Landscape, added more subdivisions, imported the displacement map, and bend the plane to be curved, so the virtual textures would work on them and blend them nicely into the terrain.
Instead of using the spline tool in the Landscape tab, I created a blueprint to place them on the terrain. As the Landscape Spline tool doesn’t allow Nanite yet, I had to find a way to reduce both draw calls and enable Nanite for performance.
I managed to optimize it, by baking the procedural tools at the end.
The rocks were imported from Megascans, where I bundled a few into Packed Level Instances, which allowed me to make rock prefabs while instancing my meshes.
I started texturing in Substance 3D Painter, where I created multiple Smart Materials to get the right look. I didn’t like the result of the rust generators, that’s why I downloaded images of rusty containers, created a custom grunge map, and used it in SP as a mask for my materials.
More details were added as decals in the engine because if I keep the material simple, the player won't notice the repeating meshes and the decals add the variation between them.
In the engine, I created virtual textures to blend my rocks and debris into the landscape without harsh lines.
To make the landscape material look better in the distance, I added another texture – a bigger one – on top, so that it would be blended with the ground after a certain distance.
Assembling the Scene
The main composition was already given, thus I only tried to separate my environment into the foreground, midground, and background, but for the other ones, I had a lot more freedom, that’s why I placed the building in the middle and blocked the players view on the sides to not be too distracting.
Every place in my scene has an imaginary spot, the player will walk on. From this point, I designed a visually appealing composition, to give the player not only a good composition but also lead them towards the most important places, which are the focus of each composition.
To quickly scatter all the foliage on my terrain, I created a Landscape Material with the Foliage types assigned. For some more manual details, I placed them individually.
Unreal Engine was the obvious choice, especially because of Lumen and Nanite.
My entire Map was lit by a directional light with a few spotlights as a highlight. Lumen helped me a lot to sell the lighting, especially through the bounce light of the sand.
To get the right mood and atmosphere, I used volumetric fog with some hand-placed fog cards, which disappear, once you get too close. I played a lot with volumetric clouds, but after a lot of trial and error, I ended up using cloud cards for my scene.
My main challenge for this piece was optimization. I tried to keep the draw calls below 1000 with 1500 for my main composition. Because of this, I started using a lot of instanced meshes and I baked my procedural tools at the end.
I regret creating the power lines in Unreal – usually, I would do that in Houdini, but I wanted to learn something new. That being said, the optimization for the cables was a lot worse than expected, especially because I didn’t find a way to bake them into one piece. Another thing I wish I knew earlier was that the Landscape Spline tool does not support Nanite to this day.
This content is brought to you by 80 Level in collaboration with Unreal Engine. We strive to highlight the best stories in the gamedev and art industries. You can read more Unreal Engine interviews with developers here.
You may find these articles interesting