AKS-74U Handguard
Introduction
My name is Colin, I’m a self-taught 3D artist specializing in hard-surface and weapon modeling.
I’ve been an enthusiastic hobbyist for many years and am now looking to expand my portfolio and establish myself as a professional in the 3D industry.
Some of my work can be seen in the VR game “Hot Dogs, Horseshoes & Hand Grenades.”
Goals
I began this project as my submission for “The Weapon Room” Discord server’s monthly prop modeling challenge.
I’ve never participated in a challenge like this before and thought it would be a good opportunity to get some valuable feedback from industry professionals and other artists.
For the challenge, I had to model the wooden handguard, metal components, and a rubber band. The poly budget was 10K or fewer tris, and the prop should use two 4K texture sets for visual clarity.
With these few parameters in mind, I had creative liberty to determine the direction of the project.
For my own personal goals, I used this project as an opportunity to practice and refine a few techniques in my workflow.
I wanted to focus on more efficient UV mapping, reducing my typical number of hard edges (and UV islands as a result), and maintaining a consistent resolution across the prop.
I also wanted to practice creating my own stencils and lean more heavily on hand-painting details rather than using generators.
Tools
As a hobbyist, I try to keep things as simple (and as cheap) as possible. I’ve become very comfortable and efficient using a very limited toolset.
Everything is handled between two pieces of software:
● Blender
● Substance Painter
All my modeling, UV unwrapping, sculpting, and rendering is done within Blender. I make use of two addons:
-
TexTools (Free): used for easier UV manipulation and editing, as well as streamlining baking color ID maps.
-
Fast Carve (now JMesh Tools): streamlined method for managing multiple live boolean operations.
I use Substance Painter for baking mesh maps and texturing. I use a metal/roughness workflow currently.
Additionally, I use PureRef to organize my reference images.
Reference & Research
The first step I take in the process is completing research and gathering reference images. I dedicate a considerable amount of time to this phase, as it serves as a foundation for the modeling and texturing.
Specificity is important here, as there are countless variations of AK handguards with unique forms and finishes. Having consistent references ensures the model comes together cohesively.
For this project, I gathered reference images for the specific model of handguard I was portraying, being careful to avoid images of replica or airsoft products, which are often oversimplified and unreliable as references.
I get into the weeds in this phase, not only collecting images of each component part but also researching the specific species of wood used, finishing methods, and how the metal parts were coated.
Gunsmithing forums and firearm part websites are invaluable for this data.
It may seem excessive, but taking the time to identify details such as the construction methods and species of wood will make your finished project feel more grounded and realistic.
The small details add up to more than the sum of their parts.
Modelling
Scale & Layout
I begin all my modeling in Blender by establishing my scale.
There are a handful of ways to do this, but I began by finding a full-sized image of the AKS-74U and used a combination of barrel length data, overall length, and nominal handguard length to scale my reference to my scene.
From here, I can scale my primary reference images. The most important dimension here is often width, as these reference angles are harder to find and result in a lot of weapon models being far too narrow.
Methodology
My modeling methodology is admittedly a little unorthodox, but after trying a few different approaches, I’ve found it’s what consistently works best for me.
From the beginning of the process, I model with my low-poly in mind. I start modeling by establishing my overall silhouette to minimize stair-stepping, while keeping my overall polycount fairly low.
This makes cleanup and optimization of the low poly more intuitive and deliberate. I frontload boolean cleanup and shading manipulation to save time at the end of the process.
An hour of prep work saves a day of pain, as I see it.
I modeled the handguard with a mix of traditional modeling and Boolean operations.
The rubber band was a circle with a shrinkwrap modifier around the wooden components, limited using vertex groups for the points touching the top and bottom of the handguard.
After extruding the circle, I deleted one of the long sides and bridged the edges with a twist. I added a solidify modifier to add thickness to the band.
Lowpoly
Once I have my base shape, I use live booleans to lay out my cuts and apply them one at a time, starting with the largest defining features.
I do boolean cleanup as I work rather than waiting until the end to simplify the workflow; this becomes very intuitive and fast with practice.
I keep a duplicate of the base mesh in a separate collection in case I need to reevaluate or change my approach.
When I’m happy with the overall form of my mesh, I focus on correcting my shading, using a combination of sharp edges and weighted normals.
There are often ngons making up large flat areas on the mesh at this phase. Each mesh component gets a triangulate modifier, which I use to preview the resulting geometry.
I do not apply this modifier until I’m ready for export, as this allows me to select and edit geometry more easily.
Suppose I see an area being pinched by the automatic triangulation. In that case, I can manually triangulate the problem area more efficiently, or I can add more verts to the area to give the modifier more data to work with.
I check “Keep normals” to maintain my shading data.
My goal here is to frontload the optimization by modeling very deliberately with my final goal of creating a game-ready mesh in mind.
The resulting mesh is:
- Easy to work with and edit if further changes or optimization are needed.
- Marked sharp and ready for seams and unwrapping.
- Has good overall form and normal shading.
- Ready for triangulation and export.
Highpoly
A solid base mesh serves as the foundation for my high poly. I start by duplicating the mesh and moving it to a new collection; this keeps the low and high poly meshes separate but ensures they are exactly aligned for export.
I handle high poly with two different workflows. For simple objects like the rubber band and end caps, I use a bevel/subdivision workflow.
Every sharp edge is beveled with a weight-limited bevel modifier, and I add 2 levels of smoothing using a subdivision surface modifier. I refine the resulting mesh with creases and support loops.
For more complicated shapes like the wooden parts of the handguard, it takes too much time to modify and limit the mesh to get a subdivision surface to get the result I want.
Instead, I use Blender’s built-in sculpting workspace to remesh and smooth.
For this approach, I start by initiating face sets using sharp edges or UV seams, depending on the mesh. This will allow me to quickly isolate and smooth elements of the mesh while keeping other details sharp.
I voxel remesh the model to a fine level of detail. Using face sets, I can isolate the curved surfaces and smooth them using mesh filter brushes.
Once I smooth each individual area, I can apply a small level of smoothing to the whole mesh, and manually sculpt trouble areas and add sculpted details.
My approach is backwards to many workflows, but for me, it makes more sense to use the high poly primarily as a means of complementing your low poly, which should be able to stand on its own.
Rather than attempting to reduce and clean up a high poly mesh into a serviceable low poly without too much error.
UVing
To begin UV unwrapping, I open the UV editing workspace and enable the “display stretch” overlay. This color-codes my UV islands to highlight pinched or stretched areas.
Then, using the free TexTools addon, I apply a 4K checker pattern over my mesh to visualize my relative UV island scale in the 3D viewport.
I start by selecting all my sharp edges and marking them as seams. I’ll then mark seams where I know they’ll be needed to break down shapes like cylinders.
I try to place these seams where they’ll be out of view or easily hidden. After hitting unwrap, I can use the stretch overlay to identify problem areas and mark additional seams if necessary.
I use TexTools to straighten and align my islands to make better use of UV space.
Once I’ve repeated this process for each mesh object, I use Blender’s UV packing tools to pack my islands.
From here, I can use TexTools’ texel density tools and manual scaling and straightening to make the most efficient use of UV space, then repack.
For this project, I created two UV maps: one for the wooden components and another for the metal components and the rubber band.
Baking & Texturing
With the modeling and UV packing done in Blender, I export the high and low poly meshes and bake my mesh maps in Substance Painter.
I have a baking preset that gives me good results the majority of the time. I use a metal/roughness workflow.
I set up my Substance Painter scene with studio lighting and enabled ACES tone mapping.
Wood
Going into the texturing process for the wood components, I had a few notes in mind from my research. The handguard is constructed of three portions of laminated Baltic birch.
In practice, this looks like alternating layers of very pale and darker stripes of wood due to the changing grain direction.
The outside layers of the handguard have the stripes from top to bottom, while the center portion has them running side to side.
While there are a handful of ways to achieve this pattern, I found the best method was to create a separate color mask in Blender.
Using my high poly model, I used a simple boolean to separate the mesh into the three component parts that made up the handguard.
I then added a new material and projected a wave texture onto the mesh, using a mapping node and an empty to control its origin.
Using this method, I could control the exact number of layers per sheet I needed as well as their angle, and have them run consistently and smoothly through and across the model.
The projected layers running through the curves of the mesh’s surface create the wavy pattern across the sides and bottom of the handguard.
I duplicated this material and rotated the projection 90° to generate the pattern across the middle portion of the model.
Using this node setup, I could add a bit of distortion and noise to simplify my work later in Painter.
Optionally, you can use a color ramp node to map two or more distinct colors across these generated stripes, which can be used to color ID the layers of wood as well as the glue lines across the boundaries.
I can bake and export this color ID map using TexTools baking options. The whole process is quick and painless.
Back inside Substance Painter, I can import this map and use it as a foundation for my wood texture. A bit of time in prep saves hours of fussing with layer masks and anchor points.
In my first few layers, I establish my base raw wood texture using my color ID mask. I start adding some color and roughness variation, but avoid too fine detail at this stage.
Because this handguard is finished with shellac, I created a fill layer to intensify the color and decrease the roughness. That will also serve as my primary wear mask.
I set the blending mode for base color to Passthrough and use filters to increase the saturation and change the hue of the wood layers below.
One of the hardest features to represent in wood is a feature called chatoyancy. This is the shimmering illusion of depth when light interacts with figured wood grain.
Finishes like shellac enhance this effect. While I can’t replicate the illusion of shifting 3D depth for a simple game prop, you can get fairly close to the shimmering light effect by adding a bit of metalness into the wood texture.
It should just barely tint the reflected highlights. The effect can be further enhanced by using a soft, creased texture to add some variation.
I add a black mask to this layer and begin painting in my wear. I made my own stencils by snapping a few photos of chipping lacquer off an old floor.
In Photoshop or your image editor of choice, you can convert these images to black and white and dial in the levels to get a good mask.
Using anchor points, I can reference these wear areas and add features such as a darkening chipping edge and extra height or roughness data.
To add variation, I like to use fill layers with a grunge in the roughness channel set to Overlay; this increases intensity and contrast.
I add a blur slope effect to break up the surface detail. I slowly and deliberately build my layer stack to add areas of wear, dust, and discoloration.
Less is often more, as it’s easy to create a texture that’s too busy to be readable.
Wood can be a complicated material to tackle. My best recommendation is to have lots of reference images and keep them up on your screen; if you’re not actively looking at your references, you’re not using them.
I wrap up the wood components by adding a sharpen filter to tighten things up.
Metal
There’s a variety of metal finishes for these AK components, but they’re often a mix of parkerizing, bluing, and paint.
It’s important to pick what finish your parts have and be consistent with them, as they determine how they wear. Bluing will gradually fade as it wears; paint and other coatings will chip.
For this project, I opted for a mix of parts to create material definition, separating each component part and building the story for this prop being pieced together by donor parts.
For chipping wear, I found images online of worn metals to convert into stencils.
For metal materials, I start by establishing my raw base color and roughness. I pick a base roughness value that leaves me room to add detail that is both rougher and smoother than the baseline.
If your base roughness is too glossy, you can’t effectively add details like grease.
Similarly, leave your base color just a bit brighter than your darkest target value to leave room to darken areas and create contrast and depth in your base color map.
I use a subtle grunge texture with a gradient filter to introduce color noise, using yellow and blue tones to break up the map.
You don’t need a lot of layers to make compelling materials; using a grunge map in the roughness channel with a blur slope and a blending mode set to Overlay can bring a huge amount of variety to your textures in just one layer.
After building my base material, I add a layer to define my coating, which darkens and roughens the surface. I add my wear in a black mask and use anchor points to add detail to the edges of the wear.
I build up grime and dust layers last. To add visual interest to some of the flat areas, I use a soft brush in the height channel to create dents, which can be blended into the surrounding surface with a blur filter or brush.
Lighting & Renders
Once my texture sets are exported, I head back to Blender to render. I set up a simple scene and changed the View Transform in the Color Management menu to AgX. I use a boosted contrast or “punchy” look preset.
For this scene, I used the “Peppermint Powerplant” HDRI with a fairly low strength to add visual interest to the reflections, while my main lighting was handled by three area lights.
With lighting, less really is more. Be deliberate when setting each light and altering its size and intensity.
Your lighting should catch the edge of your model to establish the overall form, fill the dark areas, and throw shadows to emphasize depth and contrast.
I tune my exposure and render using Cycles. I use a focal length around 75mm to catch more detail without too much distortion to the overall shape.
I do some minor editing in Photoshop to adjust my levels and color balance.
Conclusion
I hope this has been an interesting read. This project is probably not something I would have done if I hadn’t sought out a challenge with other artists.
I’ve learned a lot through this process and hope others can pick up a few tricks in what I’ve shared.
I also hope this serves as an example of what can be accomplished with a limited toolset—you don’t need thousands of dollars in software to make compelling props.
I have to give a shoutout to Dan Kenton, Cohen Brawley, and the Weapon Room Discord server for their feedback and guidance.
This has been such a fun experience and I’ve learned more in a few days than I could have in months by myself.
If you want to check out some of my other work, my portfolio can be found at artstation.com/certainlynotcolin.