László Hackl guides us through the Metro Mask project, covering modeling, texturing, and rendering. He focuses on the texturing workflow and techniques that help this post-apocalyptic prop achieve a hyper-level of realism.
Introduction
Hi, my name is László Hackl. I’m 34 years old and currently working at Digic Pictures as a Surfacing Artist in the character division. My passion for art began when I was a kid. My father bought a computer to use for his work, but he let me play games on it after school and on weekends. I grew up playing a lot of games, and around the age of sixteen, I realized I wanted to work in the gaming industry in some manner.
I initially studied graphic design because I wanted to create 2D illustrations. This was when I was first introduced to 3D modeling in 2015. However, I quickly realized that graphic design wasn’t the right path for me, so I shifted to learning digital painting. Eventually, I aimed to become a Concept Artist, but I didn’t have enough design experience. That’s when my childhood friend’s brother suggested I try 3D modeling. At that point, I only had a basic understanding of 3D, so I started doing tutorials and began my 3D career.
My first job involved creating assets for a small game, though, unfortunately, the project didn’t go anywhere. After that, I landed a job at Pixoloid Studio, where I primarily worked on pre-production tasks, such as creating blockout scenes and renders for the in-house illustrators, as well as occasional small illustrations. During the pandemic, I secured a position at Digic Pictures.
About the Metro Mask Project
I really enjoy post-apocalyptic games, such as the Metro or the Fallout series. I always wanted to create something with that theme, but I never really found inspiration for it until I came across Moxx Industries’ helmet design, which I really liked. I didn’t want to just copy the helmet design but rather try to incorporate it into the Metro theme and make it a bit personal. This is why I made changes and added extra parts to it, like the battery and lamp, so it will better fit the post-apocalyptic environment.
My main focus was on realism and story. What I mean by story is what could have happened with the mask. Wear and tear can tell a story, too; what sort of environment was this helmet used in, and what happened to the wearer? On the realism side, I tried to push my modeling and texturing skills by observing every little detail on the reference. So, I started looking for related pictures and created a reference board to consult as I worked.
Modeling
I started modeling by creating a little “library” of objects that I knew I would use later on, such as bolts, clamps, screws, et cetera. When I knew I would need the same object multiple times, I unwrapped the first one, so later on, I didn’t have to unwrap all of them one by one. This helped me work faster further down the line. I even started modeling unique parts as well. Everything that I felt I wanted to model before I started modeling the main objects.
When I was comfortable with my asset library, I started creating the mask itself, as well as straps, tubes, et cetera.
I used ZBrush to create some details and make everything a little bit uneven. Nothing in real life is fully straight and perfect. A good example of this is the small tears on the rubber parts of the mask caused by wearing it. I like to look for these little details and incorporate them into the model.
I used Gabriel Nadeau’s Maya-ZBrush bridge tool, which is very handy and works well to send objects between the programs.
I added details to the mask using alphas. I tried to copy the details from the original gas mask as closely as possible, so I traced the details in Photoshop and made an alpha out of this. Then, in ZBrush, I used this alpha as a stencil and added the details to a separate layer and morph target so I had better control.
After I finished detailing, I exported displacement and normal maps.
Topology
There was no polygon limit on this project. I just tried to keep the objects “handle-able” enough because I knew this asset would be rendered with subdivisions, so I tried to keep the topology as quads wherever possible to avoid pinching and artifacts.
I did the UVs in Maya. Because there wasn’t a time limit, I unfolded (avoiding stretching) and packed most of the islands by hand to organize the placement of islands and directions, which will help me later in the texturing phase. If I have to say one rule, it is how to organize UDIMs that try to pack the object that has the same material together. I separated the model between 11 UDIMs with a texel density of 130 on a 4096px map.
Texturing
Texturing is my favorite part of any project. I can finally get lost in all the little details. I like to start with the big surface details, then move to mid and small details to keep a steady rhythm on the surface and keep the project interesting.
I started to set up my Substance 3D Painter project. I used a UDIM workflow with legacy UV settings and ACES color management. I like to use Studio Tomoco and Over the Clouds HDRIs for work because they help me visualize the roughness values better.
I imported the normal maps that I created before and added them to the separated fill layer with an anchor point so I can reference them later on for generators.
I made separate folders for every material for each UDIM, such as metal, rubber, plastic, et cetera. Sometimes, if the UDIM contains objects that have similar materials but different characteristics, I like to create folders for the different objects and then create folders in them for the materials.
After separating the materials, I picked base colors and roughness for materials so I could see how the asset would “feel,” and I made quick iterations until I liked the result. Later on, I ended up adjusting most of these, but this early lookdev phase was crucial in helping me bring together the project so I could better handle it. After I picked the right base colors, I started adding details, mostly big flat color variations and various types of noise that “broke up” the surface. For this, I like to use various photo textures. I have two methods when it comes to applying textures: the first one that most people use is adding the texture straight to the layer stack and using an overlay, multiplying, or simply lowering the opacity.
Another method that I learned from our senior colleague is that you first have to do a high pass of the picture in Photoshop or in Substance 3D Painter and then use the picture in raw mode and overlay it. This method adds subtle variation to your texture, and I really enjoy using it.
After this, I added a light dirt layer that I referenced through every UDIM that helped bring together every part of the asset. Then, I started to work on unique dirt marks and stains, runoffs, and smudges. On top of everything, I added a post-processing layer where I adjusted the overall saturation and contrast.
I used Arnold for rendering because that is what we use on a daily basis and I quite familiar with it. I almost forgot to mention that I wanted to add some tearing on the ends of the straps. I used Xgen for this. This was my first time using it, so everything that can go wrong went wrong with it. At the end of the project, I just converted XGen to mesh because it caused too many issues.
Rendering
For rendering, I used a simple light setup with 5 lights and an HDR. Keylight, fill light, two backlights, and a light for the background that, in the end, I did not end up using because later on, I used Photoshop for the backgrounds. I added two AOVs to the render: a Cryptomatte and a Z-Depth. This helped me create masks in Photoshop.
In Photoshop, I used the Cryptomatte AOV to quickly mask out the background. To add blur to the model to mimic a camera shot, I tweaked the 32-bit Z-Depth channel to create a mask.
I also used the Z-Depth mask to tweak the light a little bit. Then, I added some more sharpness to it, and it was finished.
Summary
I think it is quite hard to find a topic that appeals to everyone — instead, I would suggest trying to find things that make you interested and excited and keen to explore, interpret, and transform them. If you are interested in the project, that will make it interesting to others.
My main challenge was finding a good workflow that kept the project together while I tried out new stuff and experimented. I made small goals for myself that helped ensure I kept working on it on weekends and after work.
I learned a lot from this project, but my biggest takeaway was that you have to try merging together as many objects as possible because I kept every object separated for easy handling, and this caused me more issues down the line than every other issue combined.
If I could give you one (or two) pieces of advice: Take your time. Don’t rush it. You can’t learn while rushing or pushing through a project. I made a lot of mistakes during this project, but I gave myself enough time to learn from them by going back and starting over from the beginning.
Don’t be afraid to join a good artist community and/or try to find a mentor who will help you. Don’t be afraid to show them your work in progress and hear their feedback and criticisms, but you have to be your own biggest critic. Learning how to handle feedback is a crucial part of the job. I frequently asked my colleagues and friends what they thought of my work and took their advice into consideration.
Thank you for reading it.