Enrico Labarile talked about the working process behind the Tower project, discussed how the materials for the building were made, and showed the lighting setup in Unreal Engine.
Hey there! I’m Enrico, a Game Environment Artist from a beautiful seaside city called Monopoli, in southern Italy. Since 2020, I have been working for Pow Wow Entertainment, a video game company based in Vienna, full of talented and heart-warming people. When I joined the company, I started by doing some stylized character skins for a game called MisBits. It was a lot of fun, despite character art not being exactly my main field.
After that, I started working as an Environment Artist on a new game project called Stuntfest, which is currently in development. These past years, I have learned a lot about what it means to become a good environment artist, especially thanks to my wonderful art lead, Christoffer Radsby, who has also helped me as a mentor on this project.
The Tower Project
On a conceptual level, The Tower is part of a personal "universe" that I started working on when I made an earlier project called The Island, also present on my ArtStation page. On a practical level, I started working on the Tower project last July.
I knew from the beginning that I wanted to make a complex Mediterranean-themed environment from scratch, which would require me to approach several aspects of environment art at the same time and deal with the problem of finding a rather unique look to represent the universe I had in mind.
I had a lot of ideas and, to avoid choice paralysis, I decided to ask my friend Chris to mentor me in the first phases of the project.
For starters, if I were to pick one specific artwork that heavily contributed to the project, it would be "Capri" by an Italian painter called Antonino Leto. While other artworks were good references for very specific things (like lighting, mood, props, etc.), this one was ticking a lot of boxes at the same time.
My Miro board was as important as the scene itself for me. There, I collected a large number of reference pictures and I frequently posted screenshots and updates of the Tower project to check my progress.
Given that I had to come up with my own concept, I started with a broad set of references, which ended up being a solid guideline for several aspects of the Mediterranea universe.
The broad references were divided between photos and artworks. The distinction is important because, as a rule of thumb, I consider photos to be very useful to understand the content that I want to create, while artworks are very useful to understand the style that I want to use to narrate that content.
Once the project was up and running and most of the content was already in the scene, I made a second round of reference search, this time way more focused and technical, portraying architectural details, vegetation, cliff samples, and a showcase of modular prop kits.
The keyword at the beginning of the project was “scale”. Between my references, there was a specific artwork by the great Anton Fadeev that I found particularly useful because it had the right sense of scale and the right composition, and I loved how fresh the atmosphere felt.
While putting together the first draft of the scene, I wanted to be able to quickly arrange cliff meshes together to get an idea of what the general landscape could look like. To assist me in this task, I made a very simple shader for the cliffs that would project the green color (the grass) on the top side of the mesh, no matter the rotation or scale of the object.
This, in combination with a more exaggerated aerial perspective (a setting in the sky atmosphere actor), allowed me to come up with an already interesting result in terms of readability of the composition.
As you can see from the progression GIF, the overall environment has changed a lot.
Since the beginning, I wanted to have the landscape to feel vast and majestic. I also knew I wanted to have a tower in there somewhere to be the protagonist of the story. What changed over time, however, is the visual relationship between these two elements.
In the first iterations, the cliffs were sheer and dominated the scene almost in an oppressive way, while the tower was rather small and modest. I progressively shifted this ratio because I wanted to use the tower as an opportunity to explore more in detail what the architecture in this world should look like.
More generally, the workflow during the blockout/concepting phase was the following.
I started by throwing in a lot of ideas and progressively cutting them out because they were distracting from the main subject or simply because I felt there was no time and canvas space to develop them properly.
This of course doesn't mean those ideas are lost forever, especially since I keep track of them on Miro as well as maintain a backup version of how the level used to look like in that phase. Lots of ideas that didn't make it into the final piece will be introduced in the next chapters and will be given their own space.
My main tools for this project were Blender, Substance 3D Designer, Substance 3D Painter, TreeIt, and, of course, Unreal Engine.
Among other things, this project has been an opportunity to confidently move to Blender as my main modeling software. Using modifiers allowed for a very flexible workflow and it proved essential to quickly figure out what worked and what didn't. Since I already knew I wasn't going to do a lot of sculpting in this project, I decided to rely on Blender's sculpting mode and learn that, instead of sticking to the traditional ZBrush workflow. One major help while working in Blender has been plugins like Pivot Transform, Zen UV, and Retopoflow.
Substance 3D Designer
I used Substance 3D Designer for pretty much all the textures that appear in the scene, even to create a multichannel noise texture that I reused in almost all the major shaders that make up the scene. Using the same noise throughout the whole scene isn’t just good to provide texture consistency but also to keep the budget low.
Substance 3D Painter
I didn't use Substance 3D Painter much in this project, except for baking normals maps for the cliffs as well as some mesh maps like Curvature and Ambient Occlusion.
I stumbled upon TreeIt while looking for a more affordable alternative to SpeedTree. It might not be as powerful and well-known, but it has all the essentials to create procedural trees and quickly spit out variants. It suited my needs perfectly.
My workflow can be divided into 3 steps:
1. Blockout Phase
This was a fairly long chaotic phase where large-scale changes were frequent. To help me move forward, I registered almost every step I took. Besides taking screenshots of daily updates, I also made backup copies of the level. To make things easier, I also separated the main level from the lighting level so that I could test things more easily.
2. Kit Creation Phase
At this point in time, I was feeling a little bit stuck in the project. I wasn't sure where I wanted to go exactly with the style and I surely wasn't feeling confident enough to start adding details everywhere. Thinking about the "whole picture" started to become tiring and counter-productive. After a round of feedback on the DiNusty Empire Discord channel, I decided it was time to forget I had an entire environment to do and focus on smaller tasks instead, one of which was the creation of some materials in Substance 3D Designer. I will get into the details later, but one thing to mention is the great inspiration that the Rose Inn project (concept by Hyunsu Cha, 3D by William Tate) was for me, especially the breakdown made by William in his ArtStation post.
It made me realize that once I had some tileable materials, I could have quickly generated a kit of assets.
3. Polishing Phase (Lighting, Wind Shader, Kit Detailing, Material Improvement)
In this phase, most of the assets were placed and the feeling of the scene was close to what ended up being the final one. This phase involved a lot of shader work to improve the visual quality of assets like trees, grass, calx, and the sea and add the presence of wind.
A lot of work also went into fine-tuning the lighting to achieve a good balance between highlights and shadows.
One thing to note is that this list is something that I am able to provide only after finishing the project and having the time to reflect on the past months of work. The actual production of the scene was way more chaotic and full of frustrating moments of uncertainty than any list can represent. Every project will present new and interesting problems that can make you question and change your workflow and hopefully improve it.
In my specific case, the key to solving my puzzle was to understand when to stop obsessing over the blockout and move on to the creation of tileable materials.
What helped me in this phase was:
- A random stranger on the DiNusty Empire Discord server that suggested I focus on developing the material of the tower;
- “The Rose Inn” 3D environment made by William Tate (original concept by Hyunsu Cha); the ArtStation post with a breakdown of the project was a perfect benchmark to understand the kind of workflow I wanted to follow to solve a lot of my problems.
As previously noted, the tower was in the scene since the first blockout I made, but its role became predominant over time.
From the pictures, you might notice that the windmill and the tower used to be different entities. When I decided there was no time to develop the city, I removed it and merged the windmill and the tower.
The original tower was supposed to be way more grim and mysterious as my main reference for the tower was The Red Tower painting by an Italian painter Giorgio De Chirico and the Windmill of Ico (which was also inspired by De Chirico’s style). To reflect this, I was also working on adding stormy clouds approaching from the horizon.
On top of this, the main references are the Spanish towers scattered along the coast in Southern Italy. As they are part of defensive architecture, their look is firm and heavy.
As the project was moving forward, I decided to take out the dark undertones so that I could simply focus on just creating an interesting-looking tower, without the weight of additional storytelling to work with.
At the moment, a good 90% of the textures in the scene are tileables. The only exceptions are foliage cards (usually a simple alpha texture created in Photoshop) and the custom textures for the cliffs (normal, ambient occlusion, curvature). I was planning to generate some custom masks for the wood kit as well, but unfortunately, I ran out of time.
The Tower's wall material is a lerp between brick and calx materials. The mask that blends between the two materials is based on vertex color painting.
The calx material’s look is mostly created in Unreal Engine by using my main multichannel noise as an alpha to lerp between different colors. I am sure I can optimize this further and improve its look, but I think it served the purpose well.
One important thing to note about the brick material is the use of parallax offset, a cheap alternative to parallax occlusion mapping. It is super easy to set up, just make sure you have a height map and plug that into the bump offset node and then straight into the UVs of your main textures. When it comes to the intensity, I realized that a very low number is ideal, otherwise, there are going to be some artifacts. If you feel like the bump offset isn't doing much even with high intensity, you most likely need to improve your height map.
When working on textures, always evaluate them in Unreal, because that's what matters in the end.
What helped me figure out the style of the bricks was a refreshing talk with my dear friend Dominik Uhl, a great material artist. I showed him a very ugly, work-in-progress brick material, and he suggested I check out this post about the materials in Immortals: Phoenix Rising. Even though the overall look of the game wasn’t exactly what I wanted from my project, I found the materials very interesting.
I spent some time trying to figure out how to reproduce it and realized that Substance 3D Designer has a very useful node called threshold that would help achieve a similar style, where different values of gray are neatly divided.
To achieve this effect, I took the curvature map and filtered it four times with a threshold node, each time with a different value. I then blended the values together to achieve an effectively "cell-shaded" version of the material. Having an image with very distinct values of gray rather than smooth grayscale means that when using a gradient map node, we can decide the colors of the elements in a very precise way.
Once I assigned the major tones that define the material I kept on editing texture by adding color variation elements like dark spots, highlights, brick color variation, and some deformation.
What I realized while creating this material is that the best way of keeping the look readable is to be very gentle with deformation and noise in the normal map as that responds harshly to the Unreal lighting, making the overall material look off. This is even more true when we speak about the height map that needs to provide us with a nice and clean parallax effect in-engine.
Again, make sure you constantly check the look of your material in Unreal Engine, don't get fooled by the gentle soft look of the Substance 3D Designer viewport. If you want to make textures for games, the game engine is what matters the most.
The landscape shader has a pretty default setup. I tend to collect different layers in separate material functions so that I can make the main shader as clean as possible. To achieve a more painterly effect, I went for height blender layer blending (rather than the regular weight blending), then inputted my all-purpose multi-channel noise in all the height input channels to achieve the effect you can see below.
The same noise was used also to desaturate some areas and have a more rich look overall.
The grass shader I think is as easy as it is effective. Pretty much all of its color is generated by using Runtime Virtual Texture to sample the landscape color. On top of that, I added a SpeedTree color variation node and used the vertex interpolator node to quickly create a vertical gradient that I used as a mask for the wind shader logic. It might be a little hard to see, but I also added some color variation on the tip of the grass blades to give them a more defined look.
You might not have noticed, but the whole scene was pretty much covered with the following three masks created in Substance 3D Designer.
Multichannel Noise: R, G, B and RGB
Multichannel Noise used to add color variation to the calx material
Multichannel Noise used to add color variation to the agave + gradient based on UV node (masked through component mask node)
Multichannel Noise used to break the edges between grass and cliff and also to add color variation to the cliffs.
The landscape shader, the calx shader, the cliff shader, and many more all share the same Multichannel noise as a mask. Creating an all-purpose mask was an easy way of giving the whole scene a more consistent look (and spare the number of textures that end up being loaded in your PC's memory, which is always good).
I created this texture very early on in the project. You might have seen it in some blockout screenshots, where the blockouts have some more or less subtle noise to their color.
Room for Improvement
If I had had more time, I would have done a second pass of texturing on the wooden kit by creating custom masks for dirt, ambient occlusion, and edge wear. At the moment, I think the wooden kit looks a little too flat for the kind of style that I am trying to go for. Additionally, the cliffs could have used some more texture definition, especially when seen up close (which luckily doesn't happen much in this scene).
Last but not least, I would have made the tower look more in ruins by breaking down some walls and partially exposing the inside of it.
That said, I don't really have a problem with having unfinished business with some of the assets. As I mentioned in the beginning, this project is just a fraction of something way bigger, always in evolution, that I hope to see one day in the shape of a small explorable open world.
Very early on in the project, I created an actor blueprint with the goal of containing all the lighting-relevant actors (Directional Light, Skylight, Volumetric Cloud, Height Fog, Post Processing Volume). On top of this, I also moved the actor blueprint to a separate sublevel so that I could simply duplicate the sublevel and do all the experiments I wanted, knowing that I could always revert to a previous stage.
A fundamental element of my scene was the aerial perspective (SkyAtmosphere actor > Art Direction > Aerial Perspective). Kicking that value higher than usual allowed me to bring in that feeling that the scene is even bigger than it actually is, which was in fact one of my main goals for this project.
Aerial Perspective = 10
Aerial Perspective = 3
The problem with large scenes is, of course, the fact that due to rendering limitations, they tend to look flat and unlit in the distance. One element that helped me a lot with this problem was the use of a light function material in the directional light to fake the cloud shadow.
Cloud shadows help by giving the far landscape a more varied shading, besides helping the perception of depth by creating a difference in luminosity between the foreground and the background.
One part of me wants to say foliage was the most time-consuming part because of all the prep work that it requires. And that's indeed true. However, if I want to be really honest, the most time-consuming task for me was blocking out the scene. I spent way more than half of the project in the blockout phase.
No matter how much reference preparation I had done prior to the blockout phase (and during it), not having a defined keyframe and the gigantic scale of the environment have caused me to change my mind a million times on the composition, the lighting, and the overall mood. I believe there was nothing particularly wrong with many of the iterations that I discarded (some I even prefer to the final one), the problem is that there were literally so many possibilities to choose from that it was easy to feel paralyzed.
As I mentioned previously, cutting off content was overall a good solution to keep the focus on what I thought was the most important part of the scene, the tower, and to be able to start tackling detailing tasks rather than having to worry about a very large and dispersed scene.
Ultimately, this project made me realize that when working on a project that is going to take me a long time to complete, it is okay to forget that I have to create an entire environment and instead focus on a very specific task for a couple of nights.
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.