Game Asset Creation – Military Radio

In this breakdown, we’ll walk through the entire creation process behind the Harris AN/PRC-150 military radio from initial reference gathering and modeling, all the way to texturing, rendering, and final presentation.

Introduction

In this breakdown, we’ll walk you through the complete process behind our latest project: a real-time 3D recreation of the Harris AN/PRC-150 military radio.

From initial reference gathering and blockout, to high and lowpoly modelling, UV unwrapping and texturing in Substance 3D Painter, we’ll cover each stage of the workflow. To wrap it up, we’ll showcase how the final asset was rendered in Marmoset Toolbag 5 for presentation.
Let’s get started!

References

As always, our first step is to gather solid references and visual inspiration. Pinterest is one of our go-to platforms—despite the increasing amount of AI-generated content, it still offers a wealth of real-world reference images. Another great resource, especially for military gear, is eBay or auction sites. There are plenty of U.S.-based websites that list all kinds of weapons and military items, often with high-resolution images that are perfect for reference. YouTube is also incredibly useful when it’s hard to find certain angles or close-up shots—videos often reveal details you won’t get in static photos.
To keep everything organised, we used PureRef to manage our reference board. We divided the images into categories such as front, back, side views, material close-ups, and technical details. Each section was clearly labelled, making it much easier to access what we needed during modelling and texturing.

Make sure to collect images from multiple angles and gather additional material references from similar objects to support the texturing process. In this project, we ended up blending elements from different versions of the radio to create a more unique and visually engaging final asset.

Modeling

Step 1 – Blockout / Basemesh

We started the modeling process by building a rough blockout of the radio’s overall shape. Getting the scale and proportions right from the beginning is crucial, as it lays the foundation for the rest of the asset and helps prevent issues down the line. To estimate the size, we pulled data from Wikipedia along with a few technical resource sites that catalogue military hardware. Since detailed blueprints of the Harris AN/PRC-150 weren’t available, we relied on the most orthographic and front-facing reference images we could find.
With the blockout complete, we then moved on to refining the shapes and gradually increasing the level of detail to build the base mesh.

Step 2 – High Poly

With all the details modelled, we move on to creating the high-poly mesh using a voxel remeshing workflow. This approach is a great alternative to traditional subdivision (Sub-D) modelling, as it removes the need for manually adding supporting edges to control smoothness or manage complex topology. Before remeshing, we make sure the mesh has clean topology and good poly flow, so that applying crease values andincreasing the subdivision levels results in a smooth, accurate shape. Minor pinching or small shading artefacts at this point are not a big issue and can be ignored.

Next, we add the Remesh Modifier in voxel mode to generate a new mesh from the subdivided model. This captures all shapes and transitions, giving us a dense surface. However, keep in mind that the voxel workflow is generally more demanding on performance than a typical Sub-D workflow, since it usually requires higher resolution settings to preserve fine details. As a result, remeshing may take longer and consume more memory, especially with more complex parts.

To fix shading issues caused during remeshing, we use the Corrective Smooth Modifier, which helps even out surfaces and reduces visual artefacts.
The ideal values for subdivision levels, voxel size, and smoothing strength will vary based on your model’s scale and complexity. Also, make sure to apply your scale (Ctrl + A →Scale) before starting, so voxel density behaves as expected.

Step 3 – Low Poly

At this stage, we duplicate the entire model and move it into a new collection to begin preparing the low-poly version. We start by removing all the modifiers used during the high poly process, giving us a clean and manageable base. This is also when we decide which parts of the model can be mirrored or reused to optimise texture space. Repeating elements and symmetrical parts are great candidates for mirroring, but it’s important to make sure this doesn’t become too obvious during texturing. Identical edge wear or surface detail appearing side by side can break the illusion and make the asset feel less unique.

Next, we remove any surface details that were modelled into the high poly version and will instead be baked into a normal map later. Keeping the low-poly mesh clean and efficient is essential for performance, especially in real-time applications like games.

One crucial step is to offset the UVs of mirrored geometry by 1 unit in the UV space. This prevents issues during baking, particularly with normal maps and ambient occlusion, which can show unwanted artefacts if overlapping UVs aren’t properly handled.

UV Unwrap

In this section, we won’t go through the entire unwrapping process of the radio step by step, but instead focus on the tools and tips we used to speed things up and improve the overall UV workflow. The three main add-ons we used are: UVToolkit (by Razed), UVPackmaster 3 and the Texel Density Tool.

UVToolkit

This add-on is incredibly helpful for aligning and straightening UV islands, which is crucial for maximizing texture space and maintaining an organized layout. It offers a wide range of features to speed up your workflow, such as orienting UV islands based on selection, stacking and unstacking mirrored UVs and the ability to apply a checker pattern to quickly check for consistent UV scaling.

Overall, UV Toolkit is packed with tools that help streamline the UV editing process and significantly reduce manual work.

UVPackmaster 3

In our opinion, this is the best tool for fast and precise UV packing. It can handle hundreds of UV islands efficiently and it checks for overlapping UVs, something that could cause serious issues during baking if left unnoticed. The grouping feature is also a huge benefit, allowing you to assign islands to custom groups or UDIM tiles, which is especially helpful when working with large-scale or modular assets.

Texel Density Tool

This tool helps maintain consistent texel density across your assets, which is key for achieving a continuous texture resolution. It shows you how much texel density your current UVs have (based on px/cm) and lets you scale them to match your target value.
This is especially important when working with game assets or anything that will be compared side by side with other models or environments.
As for the unwrapping techniques themselves, we recommend checking out ChamferZone’s YouTube tutorials, which offer great breakdowns and tips for clean UV layouts.
Definitely worth a watch and don’t forget to subscribe!

Texturing

Texture Bake in Marmoset Toolbag 5

For baking, we always prefer using Marmoset Toolbag 5 due to its speed, GPU-accelerated performance, and the level of control. It allows us to generate texture maps quickly while providing tools to fine-tune the results.

One of the features is Skew Painting, which helps with fixing directional projection issues on surfaces, while Offset Painting allows you to control the baking cage. In addition, each mesh can also be placed into custom baking groups, giving full control over how individual parts are handled.
For the Harris AN/PRC-150, we baked only the normal map and ambient occlusion, which we later imported into Substance 3D Painter and used to create the rest of the maps which is needed for smart material functions.
“A new major bonus in Toolbag 5 is the Bevel Shader, which lets you apply non-destructive rounded-edge normal directly to your mesh—no high poly modelling needed. This detail can be baked straight into your maps, making it an excellent option for fast workflows.”

Setting up Substance Painter

After creating a new project using your preferred preset, we begin by importing the mesh and baked maps from Marmoset Toolbag into Substance 3D Painter. Once everything is loaded, it’s important to set up the viewport environment properly before starting the texturing process.
We recommend using a neutral HDRI, such as a studio lighting setup, to avoid any unwanted color shifts or lighting tints that could affect how your materials appear. This ensures accurate and consistent color representation throughout the project. Our go-to HDRI is usually Studio Tomaco, as it provides clean, even lighting that works well.
To further improve the viewport and better match your target rendering software, we suggest adjusting a few settings:

  • In the Shader Settings, set Base Surface / Specular Quality to Ultra. This gives the most accurate surface reflections, though it may impact performance. If Ultra is too demanding, Medium is a solid fallback, but the visual difference is noticeable.
  • Under Shader Settings, try increasing the AO Intensity to 1 to enhance shadow detail and depth in the viewport.
  • Lastly, enable Temporal Anti-Aliasing under the Display Settings to reduce jagged edges and achieve a smoother preview of your asset.

These small adjustments help create a more accurate and visually clear working environment, making the texturing process easier.

Texture Workflow

Now onto the fun part… texturing!
We always begin by focusing on the base material, making sure it looks solid before layering in any details. Even when using a single material across the model, we use slight color variations in different areas to break up uniformity. For instance, we might darken sections where the radio is typically held or touched frequently, to suggest built-up dirt and wear.
To add more interest, we add small details like oil marks, subtle color contrast on smaller elements, and layered paint effects. One useful trick is to use a paint layer with a secondary material beneath it, allowing us to reveal the underlying surface through wear, which adds realism to the asset.
For roughness variation, we build custom grunge maps and generators to give us more flexibility and avoid repeating patterns. We also recommend checking out some well-known Gumroad surface imperfection packs, which can significantly level up the realism of your materials. Additionally, using grunge or stencil textures from real-world photos and converting them for use in Substance Painter can be a huge advantage, keeping the look authentic and realistic.
While the built-in edge wear generator is a great starting point, we always break it up using custom overlays and masks to avoid a procedural or overly uniform look. Realistic edge wear is never perfectly even!
To wrap things up, we finish the process with a final detailing pass, where we blend everything together by adding general dirt, oil smudges, and AO-based grime. This pass isn’t about introducing new elements, but rather about enhancing what’s already there. Done subtly, this last layer adds just enough realism to make the asset feel believable and grounded in the real world.
However, be mindful of elements that are intended to move or animate later. If this isn’t planned properly, it can lead to bad results, such as ambient occlusion baked into a surface that remains even when the object moves.
That’s why proper planning is essential!

Rendering

This topic is covered in detail in our latest tutorial for Marmoset Toolbag, titled “How to Light Hard Surface Assets in Toolbag,” available on their official website. Click here for the tutorial
In that tutorial, we walk through everything from scene preparation and camera settings to lighting techniques and post-processing, providing a complete guide to presenting hard-surface assets effectively.

Conclusion

That wraps up our breakdown of the Harris AN/PRC-150 military radio. Throughout this tutorial, we covered the full pipeline—from collecting references and blocking out the model, to creating high and low poly versions, unwrapping with the help of powerful add-ons, baking, texturing, and rendering the final asset.

We hope you found this tutorial helpful and picked up some useful tips to apply in your own workflow.
If you have any questions or feedback, feel free to reach out and don’t forget to check out more tutorials here on CG Hideout.

Like This Breakdown?

If you found this tutorial helpful, help me reach more artists by sharing it with your network or on social media.

Want more tutorials like this?  Follow CG Hideout for weekly tips on real-time asset creation, VFX workflows, and more!