Realistic WWII Weapon Art – M1 Garand – Tomasz Szymczyk
Hi! My name is Tomek Szymczyk, I’m a 22-year-old 3D Artist from Poland currently working at Dekogon Studios. On my daily basis, I create various props but I’m mainly focused on hard surfaces/weapons. I started this project for two main reasons – the first of which was my love for guns and the second – I felt like I struggled a lot making wood textures. That’s why I thought I could practice a bit and have fun making one of the most legendary weapons of World War II – The M1 Garand.
I start looking for references all over Google graphics, Pinterest and YouTube. Besides, knowing the overall shape of every element I also want to know the mechanics. I look for photos and blueprints to see how the weapon is built and how it functions. It’s a very important step if you’re making a realistic object like this. I also set up a PureRef scene which is really quick and helpful. This process is super important to me as the more I know from the beginning, the less I struggle later on. For this project, I gathered about 80 photos and put some of them into PureRef.
When looking for references I like to gather not only clean but also worn and dirty-looking objects. It helps me decide what appearance of the texture I will be going for. In this case I wanted to make the weapon look like it had obviously been used in action but not too worn and damaged. One thing that is extremely useful when you search for reference using Google is making sure you don’t come across airsoft gun photos by typing “-airsoft”, “-bb”, etc.
The next step I take is blocking out the base shape of the weapon. I go over to 3ds Max, make sure all the dimensions are set up correctly and the object is split into parts like the real gun. I don’t really use any of these objects making HighPoly but it is nice to know the overall shape of each object like a receiver, etc. After making sure proportions are right I can proceed with the next stage.
For this part, I use Chamfer + TurboSmooth workflow. It is pretty fast and effective. I make a mid poly model and apply separate smoothing groups wherever I want hard edges to be. The next step is applying the Chamfer modification. After setting it up with a few clicks I add TurboSmooth with about 3-4 iterations. Some parts like cylinders require additional edge loops to avoid pinching on edges.
Now that I already have my HighPoly model made by Chamfering and TurboSmoothing MidPoly, I can do the LowPoly as well. I delete these two modifiers part by part. After that, I get rid of any unwanted geometry that does not build up the silhouette of the gun. The whole model has about 5000 verts.
It is time to unwrap the model and prepare it for baking. I do it by using UVW Unwrap modifier inside of 3ds Max and a plugin called TexTools. It is a personal project so I don’t try to keep a specific texel density. I use the Align option in TexTools to keep everything I need straight. I also separate UV islands where hard edges are. This is what I ended up with:
When the unwrap is done, I use TexTools again to align smoothing groups by UV shells. I also add some edge loops where cylinders are just for baking. This helps me get a nice, clean bake without any distortion or artifacts.
The next step is naming the low and high poly objects and adding “_low” and “_high” suffixes to them. I make sure “a_high” is the proper object to bake onto “a_low”, etc. It’s very important since Substance Painter will bake maps matching objects by mesh names.
For baking the M1 Garand I use Substance Painter. After importing my LowPoly I go over to bake mesh map settings and set it up. I decide to go with a 4096×4096 texture set for this project but first let’s do some test bakes. I plug my HighPoly in, set the texture resolution to 2048×2048 and antialiasing to 2×2. Then I bake it a few times to select the right Max Frontal and Rear Distances.
When I find the golden numbers I set the texture resolution to 4K and antialiasing to 8×8. I also want to bake my ID map by Mesh ID/Polygroup and set secondary rays in the Curvature map to the max. For now, I deselect Ambient Occlusion and Thickness. I will bake them later with antialiasing set to 2×2 – this will take much less time and give pretty much the same result. For AO and Thickness, I just set secondary rays to the maximum.
When all the maps are baked and I am happy with the results I start working on textures. First of all, I split the weapon into folders. Each folder will be a different material. I like to keep my folders in a hierarchy consisting of base materials, wear&dust, alpha detail, etc. For the HDRI I like to use Tomoco Studio. I also make my viewport color darker than the default. This is how my layers looked for this project:
Starting off with wood I use the default Substance Painter’s Wood American Cherry material and start tweaking it. Then, I add another layer and yet another one. I break the color and roughness by making some subtle changes. When it comes to height, for details like scratches I usually don’t use values bigger than 0.02 or less than -0.02. It looks far more realistic if it is subtle.
The same applies to roughness. Subtle changes in values between layers really do the job. I try to avoid using smart masks or grunge’s alone. It’s better to mix a few in one layer by changing their blending modes. I try experimenting with these until I get some nice, satisfactory results. For grunges I also like to add finger smudges but only where they make sense. Here is my final roughness pass:
When my base materials are ready I set up a Marmoset Toolbag scene. Every time I make some bigger changes I will export textures again and see them in there.
For the embossed text and details such as the knob markings, I did a few alphas in Photoshop. Each one is a 2048×2048 Targa imported into Painter. After painting it onto the model I give it a slightly negative height value, play with roughness and color a bit. I also like duplicating these layers and giving the bottom one a bit of a blur and warp. It makes the text look like its contours are worn.
From time to time, I add a layer, set its blending mode to Passthrough and add a HSL Perceptive filter to it just to tweak the colors a bit. It gives me control over more than one layer at the same time and could be very useful.
To add some contrast to the metal I made this blue marker number written on the side. I love this kind of detail.
My final touch is adding a Passthrough layer with a Sharpen filter. The not too big value will add a subtle noise to albedo which constitutes a nice detail all over the gun. This is my final result in Substance Painter:
The final stage and my favourite one. After exporting textures out of Painter I import my model into a new scene in Marmoset Toolbag 4 and set up the material. For this project, I use the Parking Ramp HDRI. I set its brightness to a low value and its Child-Light brightness to some pretty big one. Then I start adding lights. Every light in the scene is white – there are no other colors. I just change their value depending on which part of the gun they cast rays upon. Then I make some changes to the camera settings. For some renders, I turn on the focus. I use ACES tone mapping and play with saturation, exposure and sharpen a bit. I also go for the chromatic aberration but only with a low value – in this case, it’s 0.003.
In the render settings, I turn ray tracing on. I set bounces to some high value like 50, max out the shadow quality and start rendering. Here is the viewport of one of my render ready shots:
Now for the fun part. Every single render I make has a different lighting setup. I basically make a copy of my Marmoset scene, change the camera angle and set up all the lights again. For this project, I made 8 separate Marmoset scenes.
Here are a few final renders:
Feedback, references and walks. I honestly think these are the most important things. There are lots of things you simply won’t see after staring at your model for a long time. That’s why it’s so important to have other artists around you. You can join one of the game art Discords which I really encourage you to.
When it comes to references I spend at least a few hours looking for photos and videos. Even in the middle of modeling or texturing I might go search for some new interesting ones. And after sitting in front of my computer screen for a long time I like to get some sleep or go out for a while and just walk a bit.
It’s important to take a break from time to time. It makes you notice some things you wouldn’t notice before.
That’s it. I’d like to thank the GamesArtist team for letting me share this project with you, it’s been a great experience!
Here is the link to the artwork if you’d like to take a look:
Also, feel free to contact me through my Artstation profile or email at [email protected]
Thanks for reading and take care!