Once I figured out what I want to make, I start looking for references, lot’s of them. I feel like a lot of starting artists skip over this part while this is easily one of the most important steps in the process.
You can never have too many references. Sometimes it can be hard finding some reference images of certain objects, but you have to use the world wide web to its full advantage. Don’t only rely on google images, there’s tons of good stuff out there. If you can’t find certain images, find some similar objects, or objects that have the same material.
My main reference images came from Worthpoint, a website that lists all of the sales of a certain object in one place. I then categorise my reference images to the workflow I’m tackling this prop, blockout and modelling, high poly, texturing and sometimes even rendering and lighting. The software I’m using for this is PureRef. It’s super easy to use, I keep it open all the time on my second monitor throughout my work.
Modeling: Blocking out, Low Poly and High Poly
My main tool to create hard-surface props is Fusion360. This software is becoming increasingly popular amongst hard-surface artists. It speeds up my workflow tremendously. I can create a rough blockout of the shape I want in no time since I don’t have to worry about polygons (yet). If you want to get into Fusion360, there are plenty of videos or Artstation Learning covering everything you need to know. The only draw side of this workflow is that you need secondary software to convert the Fusion360 mesh, to a polygonal mesh, but I’ll get to that later.
I start off by creating a cube in Fusion360 with the same dimensions as the drill. I do this because I had no orthographic images or blueprints of the drill, so all of the images were warped by the perspective. I can then start blocking out the main shapes to get a general feel of scale and proportions.
After the main shapes have been blocked out, I can start working on the ‘low-poly’ version of the mesh. Of course, this has no polygons yet, but by this, I mean the version that will be exported as the low-poly mesh. Now I can easily create more complex shapes using the sketch mode in Fusion which would take a lot longer in poly-modeling software. I can refine the existing shapes and perform any boolean operation with ease
Once I have every object modeled out, I open a new tab in Fusion and work on the ‘high-poly’ version. This is basically chamfering (fillet in Fusion) every hard edge.
Both these objects have to be converted into polygonal data. The most common software to use for this is called MOI3d, short for Moments Of Inspiration. You have great control over how dense you want your mesh to be.
You can export both versions as .STEP or .IGES from Fusion360 and import them into MOI3d.
Let’s start off with the low-poly version. Once imported into MOI3d, you can click export at the bottom left and choose FBX. A window will pop up with some sliders and numbers.
You can play around with the parameters to see what works best. I usually play around with the Angle and Avoid smaller than.
Once I’m satisfied, I export the low-poly version as all n-gons (output). I can simply import this version into 3dsMax and start tweaking and refining the mesh. The downside of this method is that it creates some unusual edges in your mesh and lots of double verts. The latter can be solved easily by welding all verts with a low value.
The rest is pretty straightforward. I clean up the mesh in Max and make sure I smooth everything correctly. When everything has the correct smoothing groups, I simply ‘unfold by smoothing group’.
Doing this gives you a solid unwrap to work with, with minimal tweaking. I usually tackle one part of the mesh completely first, so cleaning up, smoothing, unwrapping. I do this to quickly do a test bake once I have that part of my high-poly ready. If the bake turns out well, I continue with the rest. I put everything into their respective texture sets, keeping the texel density consistent between both. I name everything correct and export that as my final low poly mesh.
This step all depends on whether I want to sculpt detail on my model in ZBrush or not. For guns, I don’t usually need to sculpt in any detail, so I can skip this step. I just import the high-res model from fusion straight into 3DsMax. For this, I did want some slight details sculpted in, so I imported my high-res version (figure 3) in Moi. Instead of using an N-Gon output, I use triangles and quads. I put the angle to a low value, 3 or 2 to avoid faceting in ZBrush. Note that this will take some time to export due to the density of the mesh.
Once I imported this mesh into ZBrush, I dynameshed every subtool one by one. The main tools I used after that were ‘Polish’ and ‘Polish crisp edges’.
I didn’t do a whole lot of sculpted details. Mostly some edge damages and the grip pattern. I made the pattern in Photoshop and simply used it as an alpha.
When you mask an alpha in Zbrush, you’ll notice some pixelation. To avoid this, I drag out the alpha and make the masked area into a polygroup. This way I can use the ‘Smooth groups’ brush, and smooth out the hard edges. You can find this brush in Lightbox -> Smooth -> Smooth Groups.
I like to work with layers in Zbrush, this way I can easily lower the opacity and even get rid of it completely if I don’t like it.
Here I toggle this layer on and off for some slight damages.
Once I’m pleased with the overall high-poly, I name everything correctly and export it as an FBX.
My main software for baking is Marmoset Toolbag. It gives me clean bakes right off the bat with minimal tweaking. I can easily fix some issues by moving the cage sliders.
The baking is pretty straight forward once again, I usually bake all of my maps inside of Marmoset. These are my baking settings:
I texture inside of Substance Painter. I use the same settings Jason Ord uses in his video:
I had a certain finish in my from my references. I didn’t want it to be too damaged and worn, I wanted to go for a more restored look. Something similar like this ref:
I really liked the brushed look on this image. It’s important to always reflect back on your references so you don’t make mistakes. You don’t have to stick with one image of course, but you can mix and match.
Whenever I texture an object, I like to tackle it layer per layer. First, you have the base metal, making this look interesting on its own. Use some color and roughness variations here already. Add more details or wear to the metal itself. Some dents, brush marks, etc. Add in some dirt and grime. Make every layer interesting on its own and layer it on top of each other.
In this case, the metal is cast aluminium. I add some color variations to it, to make it look more interesting. I used some blues in this case. I layered a brushed look onto it consisting of multiple directional anisotropic noises in different channels (color, roughness). I added some scratches and a stamped number.
For the dents and stamped number, I used two layers.
The first layer uses a negative height, some color and roughness variations, I make an anchor from this mask so I can use it in the layer above. The top layer has a positive height and a brighter color. The first fill is the anchor point from below, I blur it out and then subtract the anchor from it, so I’m only left with the blurred out part. This makes stamped text look more realistic. I got this technique from an article by Simon Mercuzot.
After that, I made dirt layers. I used different layers to get some albedo and roughness variations in them as well. I made sure that the dirt is built up where it makes sense. In cavities, around the edges, etc. For the dirt, I used a gray metallic value. I know, this is not following the rules of only black and white. But if it looks good, it looks good. Unless your lead or client asks you to only have white or black, then only stick to those values.
While texturing I also avoid using tons of smart masks and generators. Paint some details by hand using different stencils you find online or make yourself. This will make it so much more interesting to look at. It’s also important to have enough variation in every channel (color, roughness).
This is the albedo for example:
For the label I just created an alpha atlas with everything I needed, I can simply use one alpha as a stencil for most of the text I need.
• Tackle it layer per layer
• Keep your references close
• Make every separate layer interesting on its own
• Have enough variation in every channel
• Avoid a generated look by hand painting over some custom stencils
• Make use of anchor points to get more complex results
• Ask for feedback
Rendering & Lighting
I use Marmoset 4 to render my objects. These are the settings I use to match the substance viewport a little closer.
I really don’t do anything fancy for lighting my objects, I just add a HDRI (Tomocco studio) and add in some lights. No fancy setups just whatever looks best. I play around with different angles, add in a plane behind it to catch some shadows. Change some colors etc.
Don’t be afraid to use some different colors as background, try something different instead of keeping it white or black.
I’d like to thank GameArtists to for making me write this article. Experience points and Dinusty empire for their valuable feedback.
If you’d like to see more of my work, feel free to check out my Artstation or shoot me a message on: