Military Cap

Prop Breakdown

Mehdi Beheshti


Mehdi Beheshti

3D Artist


Hey there, I'm Mehdi Beheshti, a self-taught 3D Artist hailing from Iran.
Teaching what I know is my passion, and I'm head over heels for texturing and creating environments for games!


This project is a highlight from my comprehensive Substance Painter course, where I had three key goals in mind. First up, I aimed to unleash the full potential of Substance Painter for intricate detail creation.

Second, I delved into displacement modeling techniques within Painter, steering away from the conventional use of ZBrush.

Last but not least, my third goal was to explore the power of AI algorithms within Substance Sampler, transforming a single Google image into a complete material and seamlessly blending it with displacement modeling. Let’s break down the magic!


The software that I used during this project:

  • Substance Painter – Texturing and detail creation
  • Substance Sampler – Image to material
  • ZBrush – Decimation for Hatpin at the end · RizomLab – UV and Unwrapping
  • Marmoset Toolbag 4 – Baking & Rendering

Inspired by Cino Lai’s work, I decided to break the rules and dive into creating details, deforming shapes, and manipulating vertices within Painter.

The spark for this came when I stumbled upon a photo of a military cap online. I sifted through our base-mesh library, picked one, and kicked off my process.


In every project, building a reference board is both challenging and vital. I collected real-world military cap references of different styles and threw in some CG ones.

The plan? Study their limitations and figure out how to push those boundaries.


Model Check and Modification

  • UV Check and Packing
  • Using Sampler for Image to Material Process
  • Preparation Substance Before Start
  • Texturing
  • Exporting
  • Animation Creation
  • Final Presentation
  • Extra Step for Future Use

This general scope provides a roadmap for your project, ensuring that each step is well-defined and contributes to the overall success of your creative endeavor.
Feel free to tailor it further to meet the specific needs and goals of your project.

Model Check and Modification

Starting this project, I stumbled upon a fantastic model from The Military Hat BaseMesh Collection.

Crafted with love in Blender, it’s a 3D artist’s dream come true. After giving it a touch of subdivision and laying out a plan for the hatpin section, I’m all set to dive into the fun part – the creative process!

UV and Unwrapping

After subdividing, I used Rizom UV to refine and optimize the UV islands. Managing seams, especially after subdivision, is crucial. The goal was to maintain quality while adjusting the scale in specific areas, like the hat’s inside parts.

By decreasing sizes strategically, packing UVs, and enabling rotation for space efficiency, I achieved an optimized layout.


Turning Image to Material In Sampler

Big kudos to the Substance development team for making the magic happen! Turning an image into a complete set of PBR material is now incredibly efficient and easy, thanks to AI. Here’s how I incorporate AI into my workflow:

  • Image Cleanup in Photoshop
    1. Remove the background and clean up the selected image.
  • Substance Sampler Magic
    1. Create a new project in Substance Sampler.
    2. Add the cleaned-up image and let the Sampler’s AI power do its thing.
  • Parameter Tweaking
    1. Set the parameters for the material. In my case, it’s metal with a matte surface. The sliders for defining surface details (micro, medium, and large) play a crucial role, especially after selecting the category.
  • Exporting from Sampler
    1. The material is now ready, and it’s time to export from Sampler to Substance.

Workflow Decision

Choose your workflow:

  • Old-Fashioned Way:
  1. Export each channel as a separate channel. Now you have PBR textures to use in Painter.
  • Fresh and Modern Way:
  1. Export the whole material as an SBSAR and use it in Painter as a base material. You can even add control parameters.

It’s your call, and both ways are handy.

I lean towards the old-fashioned way as it takes less time for me in this process. However, the modern way is sweet, and if you can master the control parameters, it’s nothing short of a miracle. The beauty of having options in your workflow!

Preparation Substance Before Start

Every project has its unique starting point, and for this one, I followed a specific approach.

Texture Set Settings

For this step, I kept it simple with a 2048 document size in Substance Painter.

I included ambient occlusion and opacity channels alongside the default PBR channels. While sheen channels are an option in Substance Painter, I prefer setting these in my final rendering engine for more control.


Shader and Viewport settings

In the shader setup, I’ve chosen ASM (Adobe Standard Material) for its comprehensive features. Enabling alpha blending for the opacity channel and double-sided to avoid back-cull issues in Substance Painter.

To enhance viewport quality:

  • Specular quality is set to high for better results, considering potential resource usage.
  • Bent normal is activated for improved clarity in the viewport.

Final shader settings:

  • Alpha blending for opacity.
  • Double-sided for back-cull avoidance.
  • High specular quality.
  • Bent normal for better viewport understanding.

For displacement in Painter, I’ve enabled displacement and tessellation. The scale amount corresponds to height/displacement in other software.

Uniform subdivision mode with a count of 32 (subdivision mode/count depends on your topology). Adjust subdivision settings according to your topology if using displacement.


Now, let’s configure the display settings. I typically opt for the “Studio to Moco” environment map as it provides a broader contrast range and accentuates highlights on the surface. However, occasionally changing the HDR environment is essential to assess material appearance.

Given the use of ACES in tone mapping, I raise the environment exposure (EV) to one. Anisotropic filtering is set to high, although this may impact performance, so consider it based on your preferences and hardware capabilities.

One last setting is a bit personal; I like to play with focal length and perspective in the viewport. Adjusting these parameters allows me to view my asset from different angles, providing a fresh perspective on its visual impact.


Material Creation in Substance Painter

Following our plan, the material creation cycle in Painter begins with the leather part. Here’s a quick overview:

  • Simple Leather Material
    1. Initiated with a straightforward leather material, incorporating a leather rough texture from the Substance Community Asset.
    2. The leather section features stitches and a pattern on the strap section.
    3. The base of the material boasts a good amount of color variation to maintain simplicity and cleanliness.
  • Details with Displacement
    1. Leveraged displacement to add details to the strap.
    2. This offers the benefit of easy and fast modification, allowing seamless adjustments from color to surface extruded amounts.

This approach ensures a clean yet detailed leather material, setting the stage for the subsequent steps in the project.

For the strap, I used strips for the base pattern and incorporated Gradient Linear 2 for straight curve lines.

This simple approach adds a nice touch to the overall design.


Now, let’s shift our attention to the metal part. For this simple material, we’re aiming to add some details and shapes to the surface. Given the relatively small areas of the metal surface, we want to ensure efficiency without compromising quality.

In this section, I employ a neat trick that I like to call the “placeholder” technique. Here’s how it works:

  • Create a Fill Layer
    1. Start by creating a fill layer without any channels or data.
  • Mask Magic
    1. Dive into the mask and craft the details and shapes you desire.
  • Recall in Next Layers
    1. Now, in subsequent layers, you can recall this mask without having to repeat the same intricate steps.

This technique, the “placeholder,” is particularly handy for handling complex or repetitive masks. It streamlines your workflow, ensuring that you invest your time wisely in creating the desired effects without unnecessary repetition. Let’s make the metal shine with minimal effort!


Now, let’s shift our focus to the resources we created in Sampler. The first step involves adding an alpha channel to the base color, and I find Photoshop to be the perfect tool for this task.

This step proves invaluable when I later aim to create a dynamic mask with anchor points in Substance Painter.

The process for this section unfolds like this:

  • Base Layer Setup:
    1. Add a base layer with default values in all channels except opacity.
    2. Set the opacity channel to 0 to make the plane invisible.
  • Texture Loading:
    1. Load all textures from Sampler into a fill layer with opacity set to 1.
  • Dynamic Mask Creation:
    1. Add an anchor point to the material layer.
    2. Load it into the mask from itself.
    3. With alpha in the base color, reference the base color channel and use the “Extract Alpha” settings.
    4. Boom! The dynamic mask is now ready.
  • Adding Variation:
    1. Additional layers are introduced to bring variation to material data.
  • Sharpen and Dirt Layers:

Don’t forget to add a sharpen layer.

And Utilize the anchor point in generators to integrate with height and normal data. Diving into fabric material creation, I’ve outlined a plan for two distinct sets.
Let’s break it down:

  • Top Part (First Set):
  1. Crafted at least 3 or 4 color variations for surfaces lacking intricate details in the model.
  2. Incorporated a pre-made texture from my library for fabric patterns.
  3. Added additional layers to enhance edge details.
  4. Utilized anchor points to subtly exaggerate the fabric pattern.
  • Second Part (Second Set):
  1. Maintained a similar layer structure.
  2. Employed a different, simpler pattern—specifically, Fibers 2.

This approach ensures a cohesive yet varied fabric aesthetic across different parts of the project, making the most of color variations and patterns for a visually rich outcome.

Before moving on to the next step, I’m incorporating stitches – a magical touch made easy with Substance. The path tool, coupled with the top stitching brush, proves to be a game-changer, meeting 90% of project stitching needs effortlessly and swiftly. It’s a testament to the efficiency and creativity Substance brings to the design process. Now, let’s infuse that extra layer of detail and craftsmanship into the project!

An essential step in this workflow is incorporating Ambient Occlusion (AO) into the structure. While we create details within patterns, often relying on high-to-low poly bakes, the details primarily reside in the height or normal channel. However, the same level of detail isn’t inherently present in the ambient occlusion.

Therefore, introducing AO details in Substance Painter works like magic, seamlessly filling the gap in this particular workflow. This ensures that the intricacies of the details extend to all relevant channels, providing a more comprehensive and visually appealing result.


To address this issue, a simple fix can do the trick. Here’s a straightforward step-by-step process:

  • Add a new paint layer, set the blending mode to “Pass Through,” and right-click on the blending mode. Apply it to all channels.
  • Now you have the data you need. Add an anchor point and create a fill layer, focusing solely on the Ambient Occlusion (AO) channel. Make the data pure black.
  • Add a black mask to the fill layer. Utilize the ambient generator and load the height data from the anchor point into the microdetails section.
  • Invert the generator result, and there you go – the issue is resolved. BOOM!

This quick and easy process ensures that you have all the necessary data to enhance your project without any complications.

Exporting Texture to Marmoset

Handling two different texture sets and exporting them efficiently is key. While the UE4 template is great for managing PBR textures, a little modification is needed to accommodate the height texture.

Here’s a quick and easy rundown:

  • UE4 Template as a Base:
    1. Start with the UE4 template for streamlined texture management (it handles 4 textures).
  • Adding Height Texture:
    1. Modify the template to incorporate the height texture. This ensures you have all the necessary information for your purpose.

And that’s it! Other settings are a breeze – set the texture size to 4k, choose PNG format, go for 16-bit, and you’re good to go. Simple and effective!

Setup Material in Marmoset

Setting up materials in Marmoset is a breeze in this creative journey. I simply create a new material, load the textures into the right slots, and voila – we’re good to go! There’s one crucial detail, though: be mindful of the height/displacement value.

Setting it higher than what you defined in the Substance Painter shader settings can be a bit destructive. So, keep a keen eye on that detail, and your materials will shine seamlessly in the final render.

When it comes to the hatpin, the game changes a bit.

Since it’s a separate material, you have the flexibility to increase the height to achieve the desired effect.

Animation Creation inside Mixamo

To make your creation stand out and grab attention, consider adding some motion to it. I love using Mixamo for this – especially as I’m still a bit of a noob when it comes to rigging and animation. This tool has been a game-changer for me.

Here’s the straightforward workflow I follow:

  • Add your model to an avatar.
  • Export the file in FBX or OBJ format.
  • Upload it to the Mixamo website.
  • Set the points on the model.
  • Wait for the automatic rigging.
  • Pick your desired animation from the library.
  • Download it and voila! It’s super duper and incredibly easy. Now, watch your creation come to life!

Lighting and Rendering

In the final steps of my workflow, I divide the process into two key sections:

  • Setting up the Scene:
    1. Configure the camera to capture the perfect angles.
    2. Fine-tune the render settings for optimal output.

In Marmoset, my render settings are super simple. First, I configure the output size, samples, and denoise amount, and choose the render format. Then, I kick things up a notch by turning on ray tracing. With that done, I move on to the camera setup.

  • For the camera:
  1. I turn on the safe frame.
  2. Set the desired focal length.
  3. Adjust the focus point and depth of field mode, including the aperture diameter.

Now, it’s time to work the magic in tone mapping:

  • Tone Mapping: ACES
  • Curves: High Contrast
  • Highlights, Midtones, Shadows: Tailored based on lights and surfaces; you can play with these sliders.
  • Clarity and Sharpen: Personal preferences dictate these settings.
  • Bloom: I prefer handling it in Photoshop rather than here.
  • Vignette: Always on, with softness set to 1 and strength between 0.1 and 0.3.

And just like that, your render setting is polished, and your camera is ready to capture the magic!

  • Lighting Magic:
    1. Illuminate the scene to bring out the best in your creation.
    2. Craft a result that shines and captivates.

Let’s walk through the lighting process together.

First up, I’ll showcase each light individually.
Here’s the breakdown of the lights:

  • Skylight
  • Back Lights – Solo (for separating the model from the background)
  • First Right Light – Solo (rim light)
  • Second Right Light – Solo (fill light)
  • Left Light – Solo (main and key light)

Now, watch as all the lights come together, each playing its role in the ensemble. Behold the final result as they collectively illuminate and enhance the scene. Light can truly transform a creation, and this process is where the magic happens!

Extra Step

Now, if you aim to optimize the mesh for real-time engines such as Unreal or Unity, take the next step by simplifying the model. You can create a lighter version using auto-retopology tools or manually craft a simplified version.

Once you’ve unwrapped it, you’re ready to roll! Simply bake all the PBR texture channels from the Substance output onto this clean mesh.


For a swift and easy transfer, tools like the Marmoset Toolbag come in handy. It allows you to seamlessly move all the data, making the process efficient and enjoyable.

Boom, your masterpiece is ready to shine in real time!


This render is the outcome of transferring data from the displacement method’s result to an optimized mid-poly version.

This step preserves detail while enhancing efficiency in the final presentation. Well done on this key progression in your project.


Now, as we delve into Substance Painter, you’ll notice a shift in how we approach and utilize it. The possibilities are expanding, and we’re about to do some pretty wild things right inside Substance Painter! Just wait for more!!

Big thanks to Game Artist for the opportunity to share my process. I hope you enjoy the journey and pick up some cool new tricks along the way. Let’s get creative!