Bohdan Ishchuk told us about the Mac-10 project, explaining how the 3D version of the popular gun was made to capture realistic wear and tear using Plasticity, Blender, Substance 3D Painter, and Marmoset Toolbag.
Introduction
My name is Bohdan Ishchuk, and I am a 24-year-old Weapon Artist from Ukraine, currently living in Poland. My journey into 3D modeling began while I was still in school, where I experimented with creating different modeling styles, such as voxel or hand paint, and participated in various competitions, such as Create a Game in a Month.
After finishing school, I decided to pursue a university degree specializing in 3D graphics and enrolled in a Polish university. During my studies, I also focused on learning game development pipelines to ensure I could go straight to work in the industry after graduation. Over the past year, I have been working in gamedev at Studio 801.
The Mac-10 Project
So, the Mac-10 project was a test to see if I could make a simple model and pull it off to a good level with textures while conveying a good story. Why the Mac-10? Mainly because of its size; it's a sufficiently large weapon with flat shapes. Additionally, its production method is made under different conditions, but mostly, it's stamped metal without any machining, which provides a significant scope for experimentation. Finally, the weapon's popularity offers a wealth of references.
Why do I have a cigarette in there? Most of my friends remarked that the model looked like "just a square". To prove them wrong, I added a cigarette to break up the shape. Additionally, this decision unintentionally created a nice clickbait effect, drawing more attention to the work.
References
References are one of the most interesting stages for me. Understanding how something works, where it is used, and why it has such a reputation is discovered during this phase. For me, this stage provides insight into what the final work will look like, even during the research phase. You decide whether you will sculpt the model or only create bevels, which details you will add to the model to convey the story, and what the final render will look like. All of this is determined at this stage. References are a crucial part of the process, and half of the work depends on them. Beginners often make the mistake of creating textures and models "from memory" instead of spending a day searching for references. So, don't underestimate this stage.
I divided the references into two parts: Main (green color) and secondary (other). In the primary references, I focused on shapes, materials, and colors. In the secondary references, I used details such as wear and tear from use, oil, dust, dirt, etc.
For most of the photographs I found, I make notes for myself about what I liked in them so I don't forget and can later incorporate those details into the textures.
Modeling
My pipeline was based on using Plasticity, which is convenient for me, and it works perfectly in combination with Blender. Once I finished the blockout in Plasticity, I transferred the model with Blender Bridge. Here, I adjusted specific settings to make the mesh as dense as possible and set these values to the minimum. This is done to ensure the shapes are smoother and that decimation in ZBrush doesn't leave sharp edges behind.
It's important to note that you should gradually reduce the Max width until you have around 1-10 million polygons in the entire model, which should be sufficient.
For the high-poly stage in ZBrush, I DynaMeshed the model and added bevels using the Deformation tab. After that, I moved on to adding the details that need to be replicated from the main references.
Topology
At the low-poly stage, I adjusted the values in Plasticity for each element individually to export an approximately ideal mesh. I then manually fixed and cleaned up any remaining imperfections for optimization before baking, as at that time, I had a weak laptop and couldn't afford to ignore optimization.
Unwrapping
Unwrapping is a moment of relaxation when you're just straightening the islands and watching how RizomUV beautifully packs them. I use RizomUV for the same reason I use Plasticity – its convenient interface and the fact that it also has a Bridge for Blender. I decided to go with around 80 tx/cm (like 80 Level), as I wanted to showcase the model in close-up without having to paint every micro detail like covid molecules. This texel density seemed ideal for me, and thanks to this choice, I didn't need to use overlaps or pack the UVs too tightly.
Now, we've reached the texturing stage. For my pipeline, I chose the metallic/roughness workflow. I've developed my own strategy for organizing textures, which consists of three stages. In the first stage, I started by applying a base material. I always use a normal map as the foundation of my materials to add depth, so I used the standard Flakes normal map from Substance 3D Painter or the steel grain material from Quixel.
After that, I adjusted the color and roughness. Then, I moved on to adding details from the references, such as defects, dents, scratches, and rust. Below, I've attached GIFs for each stage so you won't get bored reading just the text!
In the second stage, I created and refined the text. First, I prepared all the text manually in Photoshop, selecting the font to match the original. Then, I projected it onto the model in Substance 3D Painter and wore down certain areas to give it the effect of imperfect stamping. After that, I followed a process similar to Adrien Roose's, who has a fantastic tutorial on this topic that I highly recommend. To make the text more readable from a distance, I create a special roughness gradient around the text.
And the third stage is dirt! Here, I added oil, dust, bits of grime, and many other details. At this stage, I don't use generators and instead work everything by hand to have more control over the process. I focused on developing areas of interest and rest to ensure the model wasn't overwhelmed with too many details. I finalized everything by adjusting the sharpness and levels to balance the overall look.
To recreate the tobacco inside the cigarette, I first downloaded a texture of autumn grass, applied it to the model, blurred it, and then layered it to achieve the effect of thin paper. Finally, I added an emission map to show that the cigarette was lit.
Rendering
I used Marmoset Toolbag 4 to create realistic renders and spent a lot of time tweaking them until I was satisfied with the final result. Initially, I used a classic white background, but it didn't work for me because there was a cigarette in the scene emitting smoke. To solve this, I used Quixel Megascans and downloaded a wood texture. However, it still felt too empty, so I added two more props to reduce the negative space in the main shot. The image looked better but still felt flat, so I decided to add an additional light source with a mask to create the effect of shadows from tree branches.
As for the smoke from the cigarette, I added that during post-processing in Photoshop.
Conclusion
My main goal in this project was to create interesting textures on a simple object. Did I succeed? I can answer with Beethoven's famous quote: "It could have been better". Looking at this work now, after some time has passed, I realize that my skills have grown significantly. The elements I created, such as the metal and rust details, no longer seem as impressive as they did during the project. This feeling pushes me to start new projects, knowing that each one will offer something new, and that sense of discovery is what truly excites me.
It took me around 70 hours of work. The main challenge I faced was rendering, although creating the worn rust on metal was also quite difficult. To help you get through this entire process and reach the final result, you'll need perseverance. I also recommend looking to renowned weapon artists like Dmytro Mykhailyk, Adrien Roose, and Dan Kenton. Each of them has their own unique texturing style, and they have made significant contributions to the weapon art community in game development. You can find their tips and tutorials on YouTube or ArtStation.
And so we've reached the end. I would like to thank Amber Rutherford and 80 Level for the opportunity to write this interview. I look forward to future collaborations and the chance to create more interviews together.