Creating an Assault Rifle in Substance 3D Painter and Unreal Engine 5

Malte Resenberger-Loosmann has shared an extensive breakdown of the AKS-74U project, explaining why it is important to pay attention to materials and textures and providing tips on how to approach material definition.

Introduction

Dear artist community, my name is Malte Resenberger-Loosmann and I’m a freelance 3D artist with 14 years of experience in the game industry. In these years I learned a lot about different workflows in various AAA and indie game projects. Setting up company art pipelines and workflows is something I really enjoy next to providing weekly workshops for art teams and also things like modeling, baking, texturing, and researching and look development in engines.

Of many art styles such as hand-painted, stylized, and realistic approaches, realism caught me the most, especially when I had the opportunity to collaborate with Adobe and the Substance 3D Painter team. Within these projects, I learned how important it is to analyze my references to understand the layering of materials and textures to create a haptic immersion of digital material. 

In this AKS74-U material breakdown, I want to dive deeper into the process of creating realistic materials and a basic understanding of texturing, layers, and details to form a believable surface in Substance 3D Painter

I think there are many artists who can execute really clean and complex meshes with perfect shading, and polygon distribution on high and low polys as well as perfectly optimized UV sheets.

All these abilities are great and will take a long time to master in perfection. 

One thing I personally noticed is that many artists lose their motivation or focus at later stages due to the project's length and complexity. Especially when working on a portfolio alongside a full-time job, many textures and materials are just slapped onto great assets. After the long process of creating high poly meshes, followed by re-topology, UV mapping, and the most rewarding part, baking, artists tend to rush through the final step, which in my opinion, is the most important step – texturing.

On ArtStation, I also noticed many procedural textures or presets just dragged and dropped on meshes without the same treatment as the artists handled a high poly mesh or optimized every vertex/triangle in their low poly works.

This article will help you to understand why it is important to pay attention to your materials and textures also how to approach your material definition and why it is worth spending more time on texturing.

Let’s start with the baking process first as I don’t want to dive into modeling or covering the creation process of all meshes because, in the end, you may have the cleanest mesh, the most optimized UVs in the world but if you can’t create the look and feel of a specific material featured on your mesh – the whole asset will lack quality. Your materials and textures will sell your asset in the end. 

Baking

A clean bake is essential for a solid texturing foundation. Make sure you don’t have any intersections and double-check your meshes for any issues in Marmoset or Substance 3D Painter. Offset parts which may be dynamic or animated to avoid any ambient occlusion intersection.

Pushing your baking quality further check out some settings within the baking menu of SP. In my case, I did a self-bake without a high poly just using a mid poly modeled in sub-d. 

Bake Settings

Common

Set your bake to 4k or 8k as you want your source textures sharp and crisp. Later on, it will be reduced depending on project needs but it is a good idea to have a high-resolution base.

Not sure if it is a bug but setting a Sampling 8x8 causes padding issues and to compensate you can use 4x4 and 8k resolution bake or 4k depending on your hardware strength.

With "Max Frontal Distance" you define how far the rays will be sent to catch all details of the high poly. "Max Rear Distance" will define where the rays will stop. Depending on your meshes these values need to be adjusted. Therefore, you can test bake with a lower resolution at 1k.

If you bake with a high poly make sure to select Match – "by mesh name".

Ambient Occlusion

Set Secondary Rays to the max of 256 to increase baking quality. Also set the Attenuation from Linear to Smooth to avoid stepping in the AO on steep angles.

Curvature

Set Secondary Rays to the max of 256 to increase baking quality.

Thickness

Set Secondary Rays to the max of 256 to increase baking quality.

Painter Viewport Setup

Depending if you work on an asset that will be imported in Unreal you need to match the ACES color profile in Unreal. In Painter’s Project configuration set "Color Management" to OpenColorIO and set viewport to "Default – ACES sRGB". Now you match the same color profile as used in Unreal Editor.

Painter Shader and Display Setup

In the Display tab, I like to enable the "Environment Opacity" by a low number 4-30 to have better contrast and readability in my viewport, especially when working on darker materials.

I disabled shadows so that I wouldn't get distracted by them while focusing on the material definition.

The camera's "Field of View" was set to my default of 30-degree angle, matching most likely my final rendering result's field of view.
In "Active Post Effects", I used a very light Vignette.

Active Temporal Anti-Aliasing was set to maximum to render smoother edges.

I set the quality to 256 as it changed the look of the roughness a lot. If my hardware could handle it, I set it to the maximum.

I disabled Displacement and Tessellation.

So, we got a really good foundation to start creating our materials. Almost. Before jumping into action, I always do my research about the materials I need. In productions where materials and textures have a very high quality, it was necessary to spend at least half a day or one day on research.

I knew my asset, how it functioned and how different parts would be used to understand why texture details were created and how they would be distributed. Analysis of materials and real-world objects was mandatory if I wanted to create realistic materials. Analysis accompanied me through the entire project.

Analysis

The very first step in being able to analyze references is to gather references. Search the internet for high-quality images of real-life weapons or objects. Take care, as some of them are replicas or airsoft weapons. Read Wikipedia articles on how a weapon is manufactured, find forums where people are discussing issues, selling weapon parts, or forums where people post images of their weapons.

A very important thing to keep in mind while searching for references is to try to avoid other 3D works as references!
Why? Because other artists are doing the same, they research tons of references and try to read them to create amazing assets/textures.

The problem is that you will limit yourself to other artists' capability of analysis and execution. If another artist made a mistake, it is very likely that you will too, as you will refer only to their skills and not to real-world references. In some cases, it can help and support you to look at outstanding 3D works to see how details in Substance 3D Painter are made and where to place them, but try not to rely on 3D references only.

Most of the time, it is more proficient to read from a real-world reference. You can be sure that it is accurate. Also, try not to guess from memory. I have often noticed some artists saying "Oh sure, I know what material XYZ looks like." Often it is not the case and many times you can't reproduce all the rich details, deposits, and interesting roughness variations only from memory as our brains change things over time. To be on the safe side, use as many high-quality images of real-world references as you can.

When you have collected tons of images, have a look at them and try to see why the material is interesting. You should have many questions in mind, and while looking, you can note down what is most important for the material to recognize it as such.

Knowing why things look off or are not as convincing as they can be is beneficial for your progression. I can tell that most materials fall or succeed based on their roughness and color values. Variation and a really good balance of height details are key here.

For an artist, a reference image is very useful if you know how to read it: big, medium, and small details, color variation, roughness behavior, areas of dirt and metal oxidation, as well as dust particle falling directions, and many more things to create a believable material.

Texturing

If your hardware allows working in a 4k resolution, set your texture set size to 4k and only focus on one part of the overall asset (if you have multiple texture sets). This will keep you from being distracted or overwhelmed if you have to deal with many parts or texture sets on complex projects.

Pick one texture set or weapon element and hide all the rest as your graphics card won't go too crazy (it will anyway). Usually, I start with grips or magazines first to warm up and continue with more advanced parts last.

Before doing anything, I can only urge you to start your materials from scratch. For private portfolio work, I never use a material twice or use any preset at all (except for professional game development projects). This is for a simple reason; I want to learn as much as possible about a material and how I stack it in layers.

Basically, I try to transfer/rebuild a realistic image into layers in Substance 3D Painter. By using any presets, I lose control over my stack, and sometimes I can’t see what’s going on inside. Also, I lose the ability to think for myself. As I want to get better at texturing, I try to learn from my past mistakes and failures. Another reason is you most likely limit yourself to the creator's abilities and skills which can be higher or lower than yours, thus you will apply others’ mistakes in the material.

Some materials can contain many layers, so it is a very good idea to name all layers accordingly to what they are and what they do. Here are some examples:

  • MetalGalvanizedDark
  • MetalRoughVariation
  • PlasticEdgesBright
  • DustParticlesDeposits

For damages, which I usually apply at the very end, I tend to use color codes. Also, in production, other fellow artists will appreciate your clean structures if they have to take over or fix your files!

Try to build your custom maps or buy interesting procedural texture packs. Substance 3D Painter comes with a very nice library of generic textures to use, but sooner or later, you will notice a heavy repetition of patterns. To avoid a generic look, try to gather your own textures and prepare them like in the example given.

When working on material, I personally build hundreds of questions in my mind about some things:

  • How is the material crafted in the real world?
  • Which materials (layers) do I really see?
  • Which components is the material made of?
  • What is the story behind the surface?
  • Why has an object scratches and what caused them?
  • Who or what tool built the material?
  • Which colors do I really see?

And many more. It is good to use tools like Miro for brainstorming and to write notes or comments on things you want to add or plan during your material creation. Often it is the case that I get an idea during the process or outside while having a break. To not forget about it, I use Miro or a classic paper block to keep them safe. It will help you build your layers logically and approach the texturing in an organized way.

The 10 Layers Theory

For one particular project, I had to deal with over 100 materials. After the first 25, I saw a pattern in material creation which I built the thesis of thinking: Every artist can create a material within 10 layers to define the very basic look in a procedural way.

To be able to prove the theory, I jumped into creating and testing some common materials which, in production, would be used a lot like metals and plastics or rubber.

The goal here was to be able to define a simple material basis that is procedural and realistic at the same time. Of course, it would need way more layers in the end to have a more unique and iconic material definition, but with a solid base to start from, it only takes a few steps more to create a high-quality material for an experienced artist. Also, for production, it saves a lot of time when artists have a foundation to start with.

Let's break down single-layer structures to understand what is needed to create any kind of material. It may be true that you sometimes can't create specific materials like lava, reflectors, or honey with only 10 layers, but for simpler things you can.

First, I start with the basic definition and surfacing of a material.

  • Basic Color – It is important to not use pure black or pure white, and also leave some range for highlights and darker tints. I tend to build up my materials a bit brighter or in the mid-range to have some space left.
  • Roughness – It is the most important value. If your surface is too glossy or too rough, the material definition is not convincing enough. Try to create a nice balance of reflective and non-reflective surfaces.
  • Height Details – It adds the haptic feeling of a material. Be careful of scaling and the number of details as too many height lines or damages can produce very noisy results.
  • Edge Highlights – To gain better readability, it is recommended to highlight your asset edges by using curvature + levels or a generator/mask in Painter. Sometimes, you want to break them or add a variation of edges or customize them yourself with a paint layer. Also, I use a fill layer set to subtract on top of my mask stack to create interesting edges.
  • Fine Details – Usually, I do these things at the very end of my material definition as these layers can include hair & fur, particles, and all kinds of smaller deposits. Also, many artists use a Sharpen filter and an AO pass on the very end to increase the contrast and sharpen texture details.
  • Polishing and Fancy Features – Most interesting for skin textures or offline rendering projects where you can use Sub Surface Scattering or translucency materials to show how a light source emits through your surface.

Creating Procedural Materials

All materials created for the AK are based on the 10-layer theory. Creating procedural layers is good, but they may not match the quality standards of AAA production. Therefore, more effort is needed to create unique and remarkable details, patterns, and colors that tell a story within an asset through materials.

Presentation in Unreal

If your asset contains several parts, some of which are replaceable, like in the Call of Duty games, it is worth setting the pivot to a point where the weapon can be assembled without too much effort in a blueprint. This allows for greater flexibility in presentation, as you can quickly iterate and show or hide certain parts that are not needed, such as attachments or level progression.

Load your meshes and textures into Unreal and assign the textures and materials.

Tip: If you use sub-d or high poly meshes, you should enable "Use full precision UVs." By default, Unreal uses 16-bit UVs to save memory but enabling full precision forces the mesh to use 32-bit UVs, which is necessary in certain cases where texture artifacts appear on the mesh.

I always use a master material with parameters enabled to adjust color, emissive strength, and other texture values such as brightness or contrast. Using material instances can save a lot of time by simply dragging and dropping textures into slots, rather than rebuilding all material setups, which can be tedious when working with more than 5 or 10 texture sets.

Be sure to have sRGB disabled on your mask textures (metal, roughness, AO-packed maps) as we only use linear color masks here, otherwise, your roughness will look different.

Linear and Non-Linear Spaces

Why is it important to understand the difference between linear and non-linear spaces? Many artists may not be able to answer that question, but it is important to understand the concept. A linear color space means that numerical intensity values correspond proportionally to their perceived intensity. This means that the colors can be added and multiplied correctly. A color space without this property is called "non-linear."

Screens and monitors have a non-linear response and images in different formats (PNG, TGA, etc.) will be compressed. Due to the human eye's ability to perceive differences in darker and brighter color values, we have to adjust these values for more accuracy. Gamma is the name given to the power applied to the image.

A neutral grey image doesn't have a value of 0.5; rather, it is around 0.73, while pure dark and whites remain the same. Because most images have a default 0.45 gamma value, your roughness will appear brighter. If you leave the sRGB value on dark/white masks, it is likely that your asset will appear more glossy than intended. Turning off sRGB will gamma-correct your image, making it appear as intended in the engine.

Before placing any lights, add a Post-Process Volume effect and change the "Exposure" mode to manual, and set 10.5 as the default intensity. Later, it can be adjusted to lower or higher exposure, depending on the scene's mood.

Try rotating your mesh by 30-degree angles or a slight tilting to show nice light reflections on the surface. This will help to support the visibility of your roughness map and also creates nice view angles. I would recommend starting with basic lighting. Use rectangular lights as filler and another rectangle light as rim light. In the end, place some point lights to create interesting surface highlights.

Depending on your scene's complexity, it is a good idea to add a Lightmass Importance Volume, as it allows you to concentrate on an area (bounding box) that needs detailed lighting. Areas outside the importance volume will only consist of lower-quality lighting.

Adding a Post-Process Volume will help you increase the overall look and feel of your scene by tweaking certain features like light exposure, shadows, and scene tint. Here are some settings I used for the AK.

Post-Process Volume Settings

Alternatively, you can use the HDRI backdrop if you want to start with a skylight and basic HDRI setup.

For a more neutral background, I usually start with a new scene, enable "engine content," and search for "Inverse Sphere." Drag and drop it, scale it to around 400-500, and center it to X, Y, Z - 0.

If you create a new material, set it to unlit and put a 3 vector (color) node into the emissive slot and assign it to the inverse sphere. I usually prefer to choose a grayish-blue color. Make sure to not use a fully dark background color as it might not be very readable, as a dark color will hide many silhouette features of your mesh and makes it hard to read at certain angles.

Rendering in Unreal

Once you are happy with your scene, it is time to get some high-resolution images. Change to a cinematic view/camera to be able to see crop frames (Perspective→Cinematic Viewport). Also, you can drag and drop a cinematic cam or create one out of your current view (Settings→Create Camera Here→ CineCamera Actor).

In Settings-> Screen Percentage of 65-75 is default – you can increase the amount depending on the level of sharpness you want to get. Higher values can cause color issues like 200% visible in the image.

Go once again to settings and High-Resolution Screenshot. Now increase the size multiplier from 1→2 and hit Capture. The image will be stored at "DriveLetter\YOURProjectPath\Saved\Screenshots".

To be able to change the background color or editing effects later on, it can be useful to store an alpha channel by turning on Specular Buffer Visualization. You can add a pure white color by using a 1 vector node in your master material as the image shows. Capture the specular buffer viewport as well without moving the camera or perspective as these two captures need to be overlaid later on in Photoshop.

Post-Production in Adobe Photoshop

It is a good idea to have a library of post-effects like dirt maps, camera lens deposits, and bokeh images to slightly overlay them on top of your render image.

Import both of your screen captures, the image, and buffer visualization in Photoshop and use the Magic Wand tool to create a selection and mask your image so you can replace the background with any image you want. I prefer a blurred image and I never use a very dark one to avoid bad readability of silhouettes and shapes. In Marmoset, you can set a custom HDRI from Poly Haven and render a blank scene image with just HDRI.
Now start adding some Color Correction layers and bokeh effect images. Use a very small amount of 8-12% opacity in Color Dodge blending.

Save and export your image as PNG now and open it once again. Create a copy and apply a Filter→Camera Raw Filter. Here you have a lot of settings you can tweak after rendering to change the mood again or brighten/darken your image or get more contrast or a sharper image.

  1. Select the Filter
  2. Press the "Y" symbol to see a live comparison of your image
  3. Adjust colors, brightness, and tint to change the mood of your image
  4. In the top bar, you can increase your sharpness once more. Especially if you want to publish your image on Artstation or any other website, you will face image compression.
  5. Apply everything by hitting OK and add a description, web URL, or your name to the final image.

Conclusion

After the modeling and baking stage, there are even more important steps to work on if you are aiming for very high-quality assets and a presentation of your skills. Also, considering how much content an artist has to deal with when it comes to asset production, it's always a good idea to take smaller breaks to stay consistent in quality and to clear your mind during longer projects.

By creating very complex assets or shapes and following the long run of AAA production of high poly, low poly, and UVs, you may find yourself exhausted during the process or at the end. Especially the end part; baking, texturing, rendering, and presentation, is the part where you will sell or fail your asset most likely. Take your time on your private portfolio creations, and also do something else – non-3d related – between your creations to get a good distance and continue where you left off with new energy.

Tips for 3D Artists

  • Learn from the best (in my case, I do from Escape from Tarkov and ILL guys)
  • Don't see other artists as competitors - instead, try to start a conversation and talk/exchange about 3D art and techniques
  • Take some rest during your projects (step outside, change of environment)
  • Be happy about other artists' success (change point of view) - the industry is very small, and you may rely on some guys later on
  • Keep being constructive, do not take feedback as personal critique
  • Ask other artists for feedback (the only way to improve)
  • Don't be emotional about your professional work - it is very likely it will change a lot
  • Make mistakes - only these will show you how to do it better next time
  • Be always curious about new things to discover and learn - it is more likely you will understand things faster and you won't stay on the same level for years
  • Try to leave your comfort zone - it is hard, especially at the beginning, but you will get better in what you do as your brain will learn new patterns
  • Try out new software (Max, Maya, Blender, Zbrush) - do not restrict yourself to only one tool you like the most
  • Be patient during your journey as a 3D artist - figure out what you want and set some realistic career goals, learn the basic foundations first and develop further - a house builder won't start with the roof first; he will build up on a good foundation.

Thanks a lot for taking the time to read my article. I hope it gave you some further insights into how I approach my materials, textures, and presentation, which hopefully you will benefit from.

Feel free to get in contact with me via my ArtStation, LinkedIn, or my website.

Malte Resenberger-Loosmann, Hard Surface and Material Lead Artist

Join discussion

Comments 4

  • Malacodart Pedro Marin

    Such a great article, thank you for sharing with the community, this is one of those amazing articles I save to read several times

    0

    Malacodart Pedro Marin

    ·a year ago·
  • Raharja Surya

    Thank you so much for posting this post, it's really helpful for me as beginner in 3D modeling.

    0

    Raharja Surya

    ·a year ago·
  • Anonymous user

    Большое спасибо! Очень ценная и полезная статья, бриллиант.

    0

    Anonymous user

    ·a year ago·
  • D Fedor

    This is huge, thanks a lot for writing this article and going that deep into production details 🔥

    0

    D Fedor

    ·a year ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more