Texture Artist Javad Rajabzade shared the working process behind the Ruger Mark IV project, talked about modeling in 3ds Max, and explained how to use Marmoset Toolbag for baking and rendering.
Hi everyone, my name is Javad Rajabzade, I’m working as a freelance LookDev/Texture Artist. I have been doing 3D work for a few years: before that, I was studying architecture. During my time as an architecture student, I decided to pursue a career as a video game artist. I am currently seeking a full-time position while working on my portfolio.
I decided to create the Ruger Mark IV model as a showcase for my new gun smart material pack, mainly with the intention of improving my modeling and texturing skills and pushing myself to learn new techniques.
Gathering references is step one for every 3D project. As soon as I learned about the pistol, I began gathering images from all angles, close-ups, and videos of the disassembly process. For searching reference, I used Google’s image search engine which helped me to find relevant images based on my uploaded image. After gathering references, I created a Pureref board and grouped them based on my needs.
I also created a folder where I kept all the resources that I thought might be useful, such as ZBrush brushes, alphas, materials for the texturing part of Substance Painter, etc.
I model the basic shape of the gun parts in 3ds Max, and then I cut out the details in ZBrush using ProBoolean. By using this technique, I can edit any part of the model during the process.
Using this technique, you don’t need to explode your model because the low poly and high poly models are perfectly aligned with each other. Also, you don’t need to build your low poly model from scratch because it’s already there and you just need to adjust them.
As for unwrapping, the general rule is to cut your UV shells when you have a 90-degree angle, also you need to maintain a single UV shell as much as possible.
I first identify the shells that I want to mirror/stack and set them aside. I then use Pack UV’s with RizomUV. RizomUV has some awesome tools for setting the texel density, padding, and packing. Here you can see the settings I like to use for my final packing:
When you are done packing you can just align and scale those shells to their counterparts and offset them outside of the 0-1 space.
For baking, I use Marmoset Toolbag. I find it works great and is fast, and the ability to change the cage sizes easily is excellent for me when I need it. Before I bake, I rename my high poly and low poly accordingly and then I import them with a quick loader so that the cages are all correct when I get ready to bake. After changing just a few settings, I bake the Normal Map and AO Map.
Once I have baked the Normal and AO Maps in Marmoset, I move on to texturing in Substance Painter. Before I work on the materials I would create a lighting scene setup in Marmoset so that I can go back and forth and preview the final material as I work on it.
One of the first steps I do in Painter is to finalize the normal details, by creating decals and any other pattern or engraving, usually with Photoshop. ZBrush could be used to create these, but I discovered later that having it on a layer in Painter gives me the ability to easily modify them if I ever need it. I apply them on a fill layer with a slight amount of height, then use a mask with a paint layer to put the details on the mesh. For a better result, I add a blur filter that will make the objects look less brand new. Then I export the Normal Map and replace them with the Normal in Mesh Map and bake the rest of the maps.
Note: In Curvature baker parameters change the method to Generated From Normal Map to get proper results.
Then I begin masking different parts based on their material, starting with a fill layer that showcases their base value (color, roughness, metallic) best, and continue layering upon the materials as the time comes polishing each material more and more.
Small details such as fingerprints, oil smudges, and wear were achieved by adding a generator and smart masks. Additionally, I’ve projected some scratches from alpha maps to achieve real-scratch behavior which in this project I used my own pack.
I use Marmoset Toolbag to render my assets. After setting up the model and the materials, it’s just a matter of playing with lights and the skylight.
I set up different cameras where I’d like to render and move them to find the proper angle. After I am comfortable with the camera view, I try different HDRIs to achieve the look I want. Each view requires a different lighting setup and it’s a bit time-consuming at first, but it saves time when you want to go back to a previous camera and tweak the lights some more.
I usually have Marmoset open when exporting textures from Substance Painter, so they are automatically updated in real-time. That way I can make sure it is looking like I want it to.
"Aces" Tone Mapping mode can help create a really cool contrast in the render. As soon as I'm happy with my render, I open Photoshop and tweak it a little and add a LUT to make it more interesting.
You may find these articles interesting