The GDC clip is basically him talking on others people work completely unrelated to what he's supposed to sell. High five!
Jay Cummings showed how he builds amazing detailed 3d handgun with an amazing level of detail.
Hey! I’m Jay Cummings and I’m currently in my 2nd year of a BA Computer Games Art course at Teesside University in the UK. I’m aiming to specialize in photorealistic environment/prop creation. My previous projects have been based on my modules, as well as what I can fit in in my spare time. This has consisted of environments like my The Last of Us laundromat and Final Fantasy 7 diorama, to weapon projects like my M1928 Thompson and the weapon I’ll be going through today, a Glock 26 Gen 4.
I first started 3D modeling about 8 years ago at the start of secondary school, and ever since then I’ve built up my knowledge of 3D and pursued it as a career! My first step into games-oriented education was a college course that covered the broad scope of games development as a whole, ranging from 3D modeling, concept art, audio design, VFX, and animation. From there, I ended up where I am now – surrounded by other passionate people trying to break into this awesome industry!
Like previous projects, this was made to fulfill the criteria of a Creative Portfolio Development module here at Teesside. We’re encouraged to create something that enhances our portfolio whilst also strengthening our skills in a specific specialist area. In my case, I wanted to further refine my ability to create hard-surface, highly detailed assets from a real-world reference. I chose to re-visit weapon creation for the mechanical elements, reliance on clean material work and for the abundance of reference that can be gathered rather quickly. This module runs alongside a much larger group-based module, so I needed to be able to create something of high quality as efficiently as possible.
I’d recently re-watched John Wick, so creating a Glock 26 was the obvious step forward. Overall, I wanted to achieve clear material definition, high-resolution texture work, a high level of accuracy to the real weapon and for it to work with a first person shooter platform – this required the internals to be somewhat modeled in as they could potentially be seen by the player.
Starting off, I collected a LOT of references. Modeling something accurately that actually exists is tricky without reference, as you’ll find yourself stumbling later on down the pipeline on the finer details. I wanted to avoid this, so when I felt like I had enough, I tried to double the amount I had collected to ensure I wouldn’t have to go digging around for more later on.
In this case, Glock’s, in general, are famously made from a durable polymer, with various components like the slide and barrel being made from milled steel, undergoing a hardening process that gives it an almost matte finish. This information is primarily used in the texturing stage, but they’re important to keep in mind throughout. With weapons, you can typically find plenty of images with just a google search. However, it’s also worth looking at auctioning websites, weapon operations manuals, video reviews and even replica firearms.
Initial scene setup consists of loading in all of my necessary reference into the scene, ensuring my units are setup (very helpful for any exact dimensions you may have access to, like barrel length, width, etc.) and setting a mid/high specular, dark grey material to my working meshes.
My modeling package of choice is 3DS Max. I’m a big fan of the modifier-based approach to modeling, so I take full advantage of exactly that. I utilize a High to Low workflow, modeling in my high poly first then duplicating all my meshes, renaming them appropriately and optimizing to get the low poly.
My method of high poly modeling involves blocking in the base forms, applying smoothing groups in conjunction with where I need more creased, tight edges, then controlling the intensity of the smoothing with double turbosmooth. I used this for the entire high poly, sometimes also using edge creasing and support loops where necessary for sharper details.
There are elements I chose to exclude from the high poly, namely the grip patterns, engravings, serial numbers, smaller indentations, etc. that were stamped in later using Substance Painter. If there’s a faster way to do it that achieves the same end result, it’s usually better to choose the more efficient route.
The slide was probably the trickiest section, as getting a reference for underneath the back of the slide, inside the chamber and the front section of the frame when it’s cocked back was tedious. It was a lot of back and forth between reference images to get it all modeled in, and a couple of areas were faked so as to not increase the polycount too drastically.
Creating the low poly, as previously mentioned, involved duplicating the meshes, adding it to a new layer, using Rename Objects to change the naming conventions (in this case, ‘_high’ to ‘_low’ to keep with Painter’s default syntax) then optimizing.
I do this by first removing the turbosmooth modifiers in place, then manually optimizing the mesh by deleting support loops, target welding vertices and in some cases bridging and creating fresh geometry. Depending on the element you’re working with, you can also use symmetry to speed this process up a fair bit.
Unwrapping is stress-free nowadays thanks to 3DS Max 2017’s inclusion of unwrapping based on smoothing groups. This goes hand-in-hand with double turbosmooth as ideally, you’ll already have smoothing groups in place. With that in mind, I use this in conjunction with manual breaks where needed, aligning edges horizontally and vertically where possible to improve packing results and to avoid aliased edges, and breaking cylinders. I then use Pack UV’s with the non-convex algorithm and a spacing of 0.001. You can also stack UV shells together at this stage to get the most out of your texture resolution.
More often than not, I’ll use Substance Painter to bake down my high to low information, primarily as it has always given me solid results, as well as all the maps I need to then go on and texture my assets. For this asset, I used a single texture set at 4096×4096 to be able to replicate the microdetail and to have clear engravings without any visible compression. It can always be toned down for more optimal game use after the texturing process, but for a portfolio piece, I wanted to really push the quality.
This is where the gathered reference is essential, as you’ll need to see how light reacts with the surfaces under different lighting situations and be able to accurately recreate it. I like to start off by getting as close as possible to my reference with the base materials before adding any form of wear and tear. Initially, I add two fill layers to the top of my Painter stack – Base Color Curvature on Overlay at 30 – 50% to bring out the baked detail and accentuate edges, then Ambient Occlusion on Multiply 100% to strengthen the effect.
I started with the polymer sections as it’s the majority of the piece – using a dark value for the albedo, then multiple masked fills to get the height grain and base roughness variation. Alongside this, I’ll import my final mesh into Marmoset Toolbag 3, set up base lighting, and constantly export textures to see how they look. This is useful as the Substance viewport isn’t accurate to how it will look in-engine. A few tweaks to the base polymer and it’s already starting to take shape, so I move on to the metal material.
I start off with a base steel material, adding in subtle directional noise and playing with the opacity. Then I build up a color tint to the metal, adding low opacity noise masks that consist of desaturated purples and yellows, emulating a treating process and adding more visual interest. I try to avoid smart masks and generators where possible as they can look very repetitive, but for laying the foundation of a subtle metal wear effect they do a great job of saving a lot of manual work. I keep this somewhat low opacity but increase contrast to get the grainy, sharpened look. I also ensure the height information is incredibly subtle if any.
Quite a big part of texturing the weapon came through the use of stamped height information, so using both photo-sourced and recreated alphas in Photoshop, I added in the branding, engravings and other text detail to the Glock. While at it, I played around with different methods of creating the tiled square pattern for the grip. I settled on using an adjustable square shape that I tiled, rotated and adjusted the spacing of, then placed into a custom stamp mask. Similar methods were used for the front and back of the grip as well.
At this point, AO-driven smart masks were used as a basis for dust and dirt so it collects in the inner sections, then I added a Paint layer to the mask to erase areas and break up the repetition a bit. I believe that you can only get so far with automated texturing tools, so at this stage, I went in for a manual wear pass. This covered manual etchings into the slide lock, safety, pins, top of the slide cover, the face of the slide, scratches where it has been dropped and more. Subtle personalized details help a lot with the visual storytelling aspect and help it to stand out more in general.
To finish everything off, I push the details further by adding a Passthrough layer with a sharpen filter applied. I also manually paint in AO and subtle base color to darken sections within the chamber, underneath the rear of the slide and within the magazine well.
For rendering, I import my final game mesh into my render template scene in Toolbag 3. This process is very much a case of constantly tweaking, setting up cameras for specific shots and staying organized with folder structures. I use a standard studio lighting setup consisting of a key, fill and rim light, then add additional lights to accentuate certain areas. I also decided to go for two lighting setups for my final renders – a studio lighting shot to better show off the microdetails and a red/blue contrasting setup inspired by John Wick.
Post-processing in the camera settings can really make or break the whole asset here, so try to push it as far as you can without going overkill. It’s really dependent on what you’re rendering so playing around and seeing what helps your object stand out is necessary. The film-like preset with sharpening and a slight vignette is usually a good starting point.
With the renders done, I chose a rear shot of the slide cocked back and decided to really push some final compositing. Muzzle flare, out-of-focus sparks, atmospheric fog and wispy smoke were added, followed by lighting touch-ups and levels adjustments, resulting in my final centerpiece.
This project was a great learning experience. It helped me push my mechanical modeling, texturing, lighting and rendering skills further, whilst still maintaining efficiency. I’m looking forward to applying what I’ve learned to future weapon projects!
Thanks to 80lv for giving me the opportunity to provide a breakdown here! Hopefully, it has been of some use to someone reading this.