logo80lv
Articlesclick_arrow
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_login
Log in
0
Save
Copy Link
Share

Breakdown: How to Make a Weapon Look Realistic and Eye-Catching

Andrew Stokaliuk spoke about how to create a realistic and detailed weapon, explaining how to tessellate the prop, why and how to separate the model into various texture sets, and detailing how to work on each set to achieve an appealing look.

Introduction

Hello! In the artist community, we all have our favorite pipeline stages. I say that texturing is probably the most important one by far, and I bet that by the end of this article you'll agree with me. My name is Andrew Stokaliuk, and I'm a Weapon Artist with quite a bit of experience in game weapons. I worked on a number of different AAA titles in different genres, but lately I've been leaning more into modern military and sci-fi directions.

Currently, I work as Lead Weapon Artist at Team from Earth; we create weapons mainly for realistic AAA games here. The AR-15 I'll be talking about in this article falls under that exact category, and I want to use it to walk you through my whole process from creating a model to final render, giving extra attention to texturing. It's the stage that I enjoy the most, and I believe it's the sole thing that makes or breaks the final result.

Just a quick note: this guide is designed for middle/experienced Level Artists. I won't really be covering the basics like buttons or introductory pipelines. Instead, we're going to focus on the "why" behind the "how," the high-level decisions that elevate a prop from good to portfolio-ready eye candy.

The Pipeline at a Glance

Before we dive into the details, let me lay out the whole technical route. I build the model in CAD, tessellate it and prepare the low-poly, unwrap the UVs and pack them with the target texel density in mind, then bake, taking the bevels not with a classic sculpt, but with a bevel shader in Marmoset Toolbag, and from there I move on to texturing and rendering.

The standard stages along the way I'll go through quickly. But there are two things I'll linger on a bit longer: baking the bevels with the bevel shader, and texturing itself.

Starting with References

Authenticity lives in the "imperfect". Don't just look for clean factory photos. The trick is actually to have a checklist of what you're looking for so you don't get overwhelmed by the sheer volume of different random images. Here is my classic list:

  • Oil and grease traces.
  • Wear and signs of use on each attachment.
  • Markings, stickers, and other details that make the work more interesting.
  • Dirt and dust buildup, fingerprints.
  • Impact marks and dings.
  • High-resolution close-ups of the base materials.

You don't need to invent a “unique backstory” for every single part. Just aim for a well-maintained-but-used look. Here's a weapon that's seen action many times; it's not brand new but not beat to death either. Even when the player sees the gun in a wide shot and can't make out small details, they subconsciously feel that it's authentic.

My main goal for this project was mechanical precision, so I gathered references from every possible angle to ensure the CAD model was structurally perfect.

Modeling in CAD

Let's get to the main workflow now. The first stage would typically be blocking, but in our case it's gonna be creating the master model right away. For modeling, I prefer CAD. It could be Fusion 360 or Plasticity. Personally, I go with Plasticity, and it's not just because of the speed.

A good way to describe it is "ZBrush from the CAD world," a tool made for an artist, not an engineer. There's no rigid history tree here, none of that parametric order of operations that breaks so easily in Fusion when you push an aggressive concept. You can bend, cut, and blend shapes on the fly, thinking about the design rather than the sequence of steps.

CAD knowledge isn't optional; it's a must for any Weapon Artist. In traditional box-modeling, most of your effort goes into managing topology. CAD completely flips that: you spend 70% of your time on the actual weapon design. The result is photorealistic gear that is structurally correct, good-looking, clean, and ready for export as a .step file.

Tessellation and Low-Poly Prep

From there, the .step model needs to be tessellated, turning the perfectly smooth CAD geometry into a polygon mesh that you can actually work with. I use PiXYZ for this. You can also get it done using Plasticity's own basic export or through MoI 3D (plenty of people do), but if you go with PiXYZ, then mesh optimization becomes way faster. That's why I prefer to use it in my pipeline.

It's important to set terminology straight right away since the word "high-poly" means two somewhat different things in this process. In CAD, our HP would be almost the same thing as the LP, just with a much higher poly count: all the curves are smooth, but there are no small bevels on them.

That's not the same as an HP from ZBrush, a heavy, multi-million-polygon sculpt with bevels, chips, and surface texture all painstakingly created manually. Later on, I'll get back to why I didn't actually need a sculpted high-poly on this project at all. Here is the difference between the HP and LP versions of the meshes:

Before we get to tessellation, the LP needs some prep first. You strip off everything that will later be baked into maps, things like threading, the grip pattern, basically any small detail the Normal map will take care of. The rule is simple: the silhouette and major seams stay as geometry while small screws, threading, and other fine surface details go into the Normal map.

Another good idea is to stitch anything (that makes sense to combine) into a single mesh: magazine parts, the suppressor, and so on. The cleaner your LP is before going into PiXYZ, the less optimization hassle you'll have afterward.

UV Unwrapping

As far as unwrapping goes, I personally love Rizom UV. It's powerful and pairs perfectly with Blender. The goal here is to straighten as many shells as possible to avoid aliasing. I don't straighten everything, though. It's justified on long cylindrical parts, sure. But when it comes to organic shapes and complex curves, then you need to gently align them along an edge so that the shell sits straighter; otherwise you risk stretching the UV and leaving nasty distortion streaks on the checker. So the overall rule is pretty simple: straighten whatever already resembles a straight line, and manually align the rest with the vertical or horizontal axis.

Packing and Texel Density

First and foremost, we need to start with understanding why the model even has to be split into separate texture sets at all. In our project, for example, there ended up being 12 of them. For mobile games or projects with modest detail requirements, a weapon is usually packed into a single atlas. But when it comes to AAA quality at close range, the high texel density forces you to split the model into independent sets by material ID: upper, lower, mag, stock, and so on.

This modularity also helps with performance. Since scopes and suppressors are often optional, the engine can load and unload these textures dynamically, saving VRAM and reducing draw calls.
Now let's get to texel density. I aim for 120–170 px/cm. This is the sweet spot for AAA FPS titles. It maintains 4K clarity without bloating the project’s memory footprint too much.

Don't waste any space on the parts that the player can't see. I scale internal or hidden shells down to 50%, and those that only appear for a split-second (during an animation, for example) down to 30%. Go aggressive with your optimization wherever it won't be noticed. The deeper a detail is hidden, the more you can afford to downscale it. The target texel density also determines the shape of the texture itself and whether it’ll be square or rectangular.

The choice depends on the part's geometry, its size, and the project's requirements. Here's an example directly from our AR-15: if you pack the suppressor onto a square 4K texture, the texel density starts significantly exceeding what is actually needed. But on a rectangular 4096×2048, it lands right in the target range.

The top part of the screenshot above shows the layout packed onto a rectangular texture with a texel density of 165, which falls within our target range. The bottom part of the screenshot shows the result of packing onto a full 4K texture: texel density was increased to 234 and started exceeding our budget. So in this particular project we are getting the best from both worlds and packing all of the sets onto both square and rectangular textures (4K, 2K).

I use UVPackmaster for the packaging. In my experience, it consistently beats other tools in minimizing wasted space. I'm including my settings in the screenshot below. One non-obvious thing there: in case you're using rectangular textures, remember to enable "Custom Target Box" and adjust your ratios accordingly.

Baking the Bevels

Here's the secret that will literally save you days of work: skip the ZBrush beveling altogether and use the Bevel Shader in Marmoset Toolbag 5 to generate those soft edges directly from the CAD geometry. And before you start rushing in, let me stop you for a second to mention that this method has its limitations. The bevel shader works perfectly in case all you need from the HP is to smooth out the bevels on sharp edges, and you are not planning to sculpt anything else on it.

For a CAD model, that's a perfect case: geometry is already clean and structurally accurate, it's just missing the curves on the edges. But the moment you need to convey surface texture on the HP (chips, rust, weld seams, all those things that usually give a weapon its character), like in the Metro project for example, the bevel shader becomes kinda useless in this case, and there's no getting around ZBrush then. So this method is very case-specific. It only works for clean hard-surface geometry, but when it works it pays off big.

When there's nothing extra to sculpt, then this pipeline can easily save you anywhere from 1 to 4 days of actual work. Those are not random numbers; they come from real project experience. One day for a small weapon like a knife or a pistol. Four for a complex rifle with many internal parts. Using a classic approach, all that time would go into wrestling with heavy meshes in ZBrush: DynaMesh, decimate, exporting dozens of subtools back and forth. In our case, all you need to do is pull the high-poly out of PiXYZ, and you're ready to bake.

Prep for the bake is standard: you go through the scene and rename all the meshes to _high and _low. For the HP, I create two materials. The first one (base) is for large and medium parts. The second one (small_det) is for all the small parts: bolts, rivets, threading, pins. The difference between them is the bevel width, and trust me, that matters. On small parts, the bevel has to be thinner to match their physical scale. If you don't do that, the bevel will swallow the part up, turning it into a shapeless mush, and the artifacts from neighboring edges will start crawling on top of each other on the Normal map.

Next comes Marmoset Toolbag. It has a dedicated Baker tool which we would use to load the high- and low-poly meshes into. Then we go to HP's material section and find the Surface parameter there, switch it to Bevel, and all the bevels would appear on the HP. After that, we go about baking as usual: LP gets both the bevels and the clean CAD shading as a result. And that's the whole trick, as simple as that.

One more thing: in case the bevels don't show up on the HP itself in the viewport, that doesn't actually affect the bake. They'll bake onto the LP either way. But if you want to see them on the HP too, then you’ll need to switch the render mode to "ray tracing."

Texturing

We have finally reached this part. The most interesting and also the most difficult stage. This project has 12 texture sets, for example, and every single one of them demands a serious amount of time and effort.

In the videos below, I switch the layers ON one by one to show the progress and the impact that each step makes. You can follow the whole path from the base materials to the final state.

The main idea behind it is bringing back all those interesting details from the references that we started the article with. It comes down to several different things, and the first of them is gradients. Artists tend to forget about them, and that's the saddest part since they add a subtle yet very important touch of epicness to a texture, but they only work in specific places! By "specific" I mean zones of heavy wear and heat: the pistol grip, the magazine, the handguard where the weapon is being held, and also the muzzle of the suppressor, where powder gases and heat create that signature gradient of heat tinting and soot.

Base materials absolutely need proper attention too. Quixel is a good place to start from. There's a solid library of base materials that you can and should use: anodized aluminum, the powder-coated plastic of the grip, steel. After that, you'll go to Substance 3D Painter and layer the story of your weapon on manually: adding gradients, soot on the suppressor, grease and wear in the grip areas, all sorts of different small imperfections. Basically, Quixel gives you a great base, but adding the character on top of it — that's up to you.

On top of that, you need to keep contrast and balance in mind the whole time, so it's neither too flat nor too noisy. The best way to check yourself is to pull the camera back now and then and see whether the large and medium forms are reading well. I like to use a simple yet quite effective trick for this: I push the model back 3 and 5 meters; that's its real size in the character's hands (or on their back in-game). At 3 meters, all the large forms like the silhouette, different materials (metal versus plastic), and the balance of light and dark zones should all read clearly.

Then at 5 meters, all the small noise elements like scratches and dust should disappear completely, letting the overall contrast and gradients shine. The exact distance depends on the project's camera: FPS keeps the weapon up-close, and TPS pushes it back. What ties it all together is the recreation of the object's real-world history. Layer by layer. When texturing, try to follow the natural lifecycle of the weapon: start with the factory-clean base steel, then apply a wear-resistant weapon paint, and only then begin building up all the surface imperfections.

Introduce scratches, followed by a fine layer of dust and a hint of oil. Then introduce the human element: fingerprints, smudges, stains. After that, move to edge damage and heavy dirt to break up the surface and add character. Somewhere in the middle of all that, try not to forget to integrate your text and markings so they wear down naturally with the rest of the asset. Breaking up the process in this chronological order keeps the texture logical, structured, and visually compelling.

It's also useful to set the scene up in Marmoset Toolbag (or wherever you'll be rendering) at this stage. More often than not, after picking an angle you realize something is missing. Rendering is an iterative process, so it’s completely normal to jump back to adjust something and refine details as you dial in your final shots.

The Big Question

"Why not texture the whole thing right in the engine?!" you may ask. And I'll say that that's a very reasonable question. But remember that this isn't the only way to go about it by any means. More and more people have been exploring texturing with masks directly in the engine lately, and it has been gaining some popularity. The idea is that you only have to prepare the masks in Substance 3D. Things like Dirt, Wear, Metal Edges, and the like. Then you pack them up into channels for the project's specific shader, and only after that's done does the final material get assembled in the engine.

The approach has an obvious upside: the same weapon is easy to customize, producing a clean version, a dirty one, and a heavily worn one all from a single set of masks. For projects with a lot of attachment variation, it's a must. But you pay for all that flexibility with control. In a mask-based pipeline, you're limited to your set of masks and the engine's shared shader: wear is generated procedurally and more or less evenly across the whole model. It scales beautifully, but it doesn't give you a hand-tuned micro-story on any particular edge, though.

The classic pipeline works differently. You bake a unique map for the specific weapon and adjust every inch of the surface manually. And those adjustments are exactly what shows up at close range. So if your weapon is going to be examined under a microscope, then the classic per-asset pipeline clearly wins here.

Rendering and Lighting

The first and really important rule here is to set up separate cameras for every single angle that you are planning to have. You almost always end up needing to re-render some shots, and with separate cameras, it's easy to come back to it without rebuilding everything from scratch.

When it comes to lighting, it really depends on what kind of shot it is. I usually use three different types, and the complexity increases with each one. For the "on the floor" renders on a white background, a single source is usually enough; that would be a direct light. To add some epicness to the shot, you can mix in an HDRI at a very low intensity. For my renders, I've set it around 0.2–0.3 but not more; otherwise it overpowers the main light.

For the "in-environment" renders, the classic three-source rule applies: Key, Fill, and Rim. The Key sets the main light and the form, the Fill lifts the shadows, and the Rim outlines the silhouette. From there, it's about experimenting with the angle, adjusting the light directions and intensity.

For the "in-environment" close-ups, Spot works absolutely best. It's not a soft, flooding Key but a direct, concentrated cone. On a close-up, it adds sharp, dramatic shadows and a concentrated pool of light that literally pulls the detail you want out of the darkness (like texture, engravings, etc.), pushing everything else into shadow. In the screenshot below, a single light source is on, and that's the Spot.

You'll still want to add Fill and Rim so the shadows don't get lost in pure black while emphasizing the silhouette and catching cool highlights on edges.

And after going through all those stages, we are finally done! As simple as that.

Conclusion

Thanks for making it to the end! More than anything, I wanted to emphasize one thing: a convincing weapon comes from how authentic its details are, and that in turn comes from all those surface imperfections that read naturally, giving the gun its character. Everything else in this article (starting from CAD all the way to lighting) is working to support this idea. Now go and try things, experiment, study your references down to the smallest detail, and you'll surely get there. I really hope this article turned out to be useful and that everyone picked something up from it.

Andrew Stokaliuk, Weapon Artist

Built for the Game & Digital Art Industry
Get Our Media Kit

Comments

0

arrow
Type your comment here
Leave Comment
Built for the Game & Digital Art Industry
Get Our Media Kit

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