04 August 2020

H&K MP5 – Firearms in Blender using Substance Painter/Designer – Maxime Guyard-Morin



Hi! I’m Maxim Guyard-Morin, an aspiring Material & Props artist who’s into technical art too. I started studying 3D and scripting in France two years ago. My main life goal is working on AAA games.

I’m currently an intern at 6th Sense VR, a VR start-up, working as a 3D Artist and Technical Artist. Last year, I was hired as an intern 3D artist at Sentry Games, an indie game studio. I also worked for TrueSightProjects on the “DarkAge” game as a Freelance 3D Artist.

If you haven’t already, please take a look at the artwork I’m writing this article for:


Here are the topics that will be covered in this article:


  • Blender and 3ds Max (switching to Blender for modeling purposes)
  • References (where I find, get and use them)
  • Modeling process (my personal approach to model 3D object)
  • Unwrap (how I make UVs in general and what specific tool I used with Blender)
  • Texturing (some tips about texturing and tools)
  • Wood breakdown (how I created the wood in Substance Designer)
  • Lightning and compositing



Blender and 3ds Max


When I posted my artwork on social media, people started to ask me questions about the switch from 3DS Max to Blender.  I picked the questions which I think will interest you the most.


Just a little disclaimer here, I used Blender and 3DS Max for modeling purposes only, so what I say may not be true for things like rendering, rigging, animation, etc.

Why did you switch to Blender?

I planned to learn Blender since the 2.8 release, mainly because of these two reasons:

First, Blender is free software, free forever, which means fewer costs for companies to hire Artists, like me. This will allow me to easily find new freelance work and work in general. Moreover, I heard that Ubisoft joined the Blender Development Fund and started to include Blender in their pipeline. So for someone like me, who would one day consider working at Ubisoft on their AAA titles as a life goal, learning Blender became the common sense thing to do.

But when? I was waiting for a good occasion. And that occasion happened: For my second internship, I was hired as a 3D/Technical Artist in a Kickstarter company. They weren’t able to buy 3DS Max licenses (which are 205$ per month or 1620k$ per year). So we decided to use Blender, and here I decided to do a personal project with Blender to become more proficient with the software.

Do you miss using 3DS Max?

Yes, of course, but if I had to go back to 3DS Max, I’d also miss some of the features Blender has. When you know how to how to model (not how to use a specific 3D modeling software, which is something very different) you won’t have too many problems switching to Blender.

Is the new Blender better than Max in your opinion?

Blender 2.8 has 90% of the tools that I use in 3DS Max for 3D modeling and also has some nice features that 3DS Max doesn’t have. I have never experienced any crash since I started using Blender. The viewport is very snappy, without any lag, so I can switch to vertex/face/edges edition quickly.

By default, Blender doesn’t have a lot of features that seem redundant, unlike 3DS Max. You can choose what tool you want to use (and load) in the Addon panel.

There is one more thing that only a few speak about when it comes to comparing the two software: Community and Documentation.

Blender has a huge and very active community. What I mean is, if you need any help with anything in Blender, you will be helped in less than an hour. I think that for a software company, having people who can help you using the software features, is more important than the feature themselves. I mean who would want to learn a software, as perfect it can be, without any documentation or help?


Do not only use Google when you are searching for references. You can miss useful references if you don’t use other search engines. If you don’t believe me, try to do the same search with another engine, you may end up with some very different results. I personally use duckduckgo.com with Firefox.

If you are planning to 3D model firearms, I would highly recommend you look at “World of Gun” on Steam. It’s a nice tool to understand how firearms are made and helps you find references with different points of view, that you may not find on the Internet.

I also used “Pureref” to display my refs whilst I’m working. If you’ve never heard about it, you should give it a try. Since many have already covered this topic, I will not dwell on it.


Modeling Process

My modeling process is very simple, I always start with a “mid-poly”. The purpose here is to have the shapes correct to make my high poly in the next step.

I mostly don’t care about topology during this process for a simple reason: I’m 100% sure that my brain is better at being focused on only one thing at a time instead of two. But I try to keep quads and keep my assets easily subdividable.


Next, I do the high poly, it is mostly adding details, making proper topology for subdivision and adding floaters.

Adding some support loops to have an equal polygon density is important because bakers (such as painter) in general generates pixel from polygon normal, so if you have a dense polygon density somewhere, it will generate a more detailed area. And if the area isn’t perfectly following the shape, which is NEVER the case due to how vertex position data are stored and used, it will result in some weird pinches in your bake.


For the low poly, I used my mid-poly and mostly remove useless edges and faces that no-one will see.


You may have noticed that some areas are way more dense than others, mostly on the scope and the top of the cross. I did this because of the player’s point of view. In an FPS game, scopes and sights are in front of the players eyes, so you want to have a more dense topology in these spots.


Making cylindrical holes into a curved surface is something really tricky. Here is my approach on how to make them.

First, I make very low-res holes on the mid-poly. Then I let the subdivide modifier create the nice high-res rounded holes needed for the high poly. Finally, I use the mid-poly as a base to retopologize the hole.

Speaking about retopology, I found Blender retopology tools really good, way better than 3DS Max ones.


As you can see, I used the “ceramic_dark” MatCap during the whole process. It allows me to better see the pinch and give me a good understanding of what I’m doing. I also tried the “metal_shiny” too, but that appears to show problems that aren’t actually there.



Blender really lacks UV support in general.
Thank god for “TexTools” which is available for Blender (http://renderhjs.net/textools/blender/). I don’t know what I would have done without it. If you're familiar with the 3DS Max version of “TexTools”, Blender one is just the same. If you don’t know "Textool", it’s a Blender addon that allows you to easily straight, align, rotate, weld edges, and islands. You should take a look at the addon, it has some nice features you may find useful.

My UV workflow is very simple, I just select all the edges that I “mark sharp”, “mark seem” them, add some seams when needed, straight island when needed to be straightened, align them and finally pack them.

To avoid weird baking issues, I have an important rule when using “mark sharp” and “mark seem”. You don’t want to have edges that are “mark sharp” but not “mark seemed” (but you can have edges which are “mark seem” but not “mark sharp”). For the 3ds max user, you don’t want to have multiple smoothing groups in one UV island (but you can have an island which shares the same border and use the same smoothing group).


Texturing is always my favorite part of the process because it’s the moment when your object starts to become “alive”. But it’s also the trickiest part: it can make your model or break it.

I’m a huge fan of the slope blur and warp filters and I use them a lot to give a more organic aspect to the edges generator, scratches map, dirt noises… Or to break a tiling effect. Be sure to use a low-intensity value and/or blur the input map (which by default is a Gaussian noise), if you try to use too high values, you will have some issues with your seams. I also use these two filters a lot for stylized stuff.

You may have noticed that the scratches on my model aren’t made with the Substance painter build-in tools. In general, both “Grunge Scratches Generator” and “Grunge Scratches Rough” are not suitable to achieve a good result. So I “made” custom grunge to do this, which is just the Substance Designer scratches generator with an option to have polar mapping.


I used the “Chipped paint for Substance Painter” brush made by Ayi Sanchez a lot during my process especially to add some damage to my model. You may need to increase the spacing if you need to use it at a lower size but that’s the only bad point I found while using it. You can have it for free from his store: https://www.artstation.com/kratos/store


Another tip, I’ve learned when I aim at a more realistic goal, is adding more variation on top of your dirt/edge generator. Here I just added a cloud map, increased the contrast, and set the blending mode to multiply.

Speaking of the generator, I used the “Awesome Mask Generator” by “damart3d“ https://share.substance3d.com/libraries/5585. Which is great, even if it lacks “Micro Detail” support.


Wood breakdown

My approach for creating a procedural texture with Substance Designer is mostly trying tons of stuff. A good trick to find which nodes to use and what shapes you need is taking one of your refs and drawing the largest shapes that you can find on it.


I used an “Input Value” node and a “Value Processor” node to control the tiling of the two tile generator, this is so I can be sure that my two “Tile Generator” gradient will match perfectly with each other and won’t have any sort of overlap. The function inside the “Value processor” node itself is just a simple “Multiplication” node-set as the function output with the two integer input as input.


The aim here is to generate new smaller waves. As you can see, I use the “Auto Levels” node a lot in my process. You may know that changing the seed can result in having a very different range of values which is a problem for a map used as an intensity input.


I added some wood knots with an enlarged “Dirt 3” node, then I used a “Make It Tile Photo Grayscale” node to be sure that I won’t get any seams anywhere, we can check this by changing the random seed. You can also use a combination of “Tile Generator” nodes to create a similar map.


Next, I added “Mid-frequency details” by warping my map with a noise. The main difference between the two “Multi-Directional Warp Grayscale” node is that the first is using a“Min” mode and the second a “Chain” mode.


The main objective of this part of the graph was adding small details to the edges. As you can see with the last node, I also decided to warp the map on the vertical axis to avoid having a flat feeling.


I added these scratches to make some of the areas of the wood less polished to break uniformity in the map and giving the wood an “aging look” trait.


Finally, I added some veins, which were also used to create those nice dark borders between shapes.


Now, the most difficult part has been done. The last part of the graph is mostly using the previous maps.

As you can see, the color of my material mostly comes from 2 gradients, I set the first one by hand and the second one using the “Pick Gradient”. I blend them the first time with an “Add” blending mode and then a “Multiply” blend node to keep the color close as my first gradient.

The “Height_to_curavature” node is a simple normal and curvature node packed as one single node. I made it to keep the graph cleaner and easier to read.

I used the emboss node to add a kind of depth to the varnishing of the wood. It’s more something that you feel than you see. It’s the same with the sharpened node which uses the dark area of the “Final wood map” as a mask to sharp some parts of the Base Color.


Lightning and compositing

For lightning and compositing, I decided to keep it simple because I wanted people to be focused on my 3D model. So I used a classic 3 point lighting. Nothing to fancy. Sometimes its better to keep things simple.




Thanks for reading! It has been a real pleasure to write this article and I hope you find some interesting tips that you can use and apply in your workflow!

Special thanks to Stan S, Jonas Ronnegard and Lucie Duclos for their feedbacks and GamesArtist.co.uk for this amazing opportunity.


Please find my Artstation here: