In case you missed it
Study more 3D guns
Hi everyone, my name is Pascual Hernández Martínez-Quintanilla, I’m 22 and I’m working as Junior 3D Artist at elite3d. My job is to produce environment and prop art for AAA-games. I’m focusing on hard-surface modeling and PBR texturing but as part of my job at elite3d, I’m able to adapt my skills to any task I’m requested for.
Back in 2017, after leaving my music education, I started learning 3D modeling on my own. After a few months, I decided to enroll in a 3D Generalist course at Florida Replay where I discovered that I enjoyed hard-surface modeling the most.
Every day, I spend a lot of time watching tutorials and searching for materials on Youtube, 80.lv, Polycount, Gumroad, 3dgladiator, Discord, and other sources. On Discord, you can find a lot of awesome servers and talk to the best people in the industry who can help you with any question you have.
Meta Pulse Pistol
Meta Pulse Pistol: Starting the Project
My main goal for this project was to improve my skills in modeling and texturing Sci-Fi weapons and push myself to learn new techniques. After a quick look through Artstation, I found Kris Thaler’s portfolio and felt in love with one of the concepts he had done, so I decided to pick it as my main reference and start searching for some similar references.
Silhouette and proportions. When modeling an FPS weapon you have to keep in mind the point of view from which the player would see the gun (usually from the back) and work on the silhouette and proportions from that point. I learned a lot about this from Gun Modeling for FPP Games article by Michał Kubas, probably the best article about FPS guns you can find on the internet.
A rough blockout was done in 3ds Max. For me, this is the most important part of the whole process. At this point, I don't care about the topology, my main goal is to achieve good proportions of the model and a general idea of how many pieces the final high-poly model will have.
I find it really useful to keep calm and spend several days on the blocking. After all, this is the most important stage. Every new day will give you a new vision of the model and you'll be able to make sure that all the proportions are fine. Besides, ask for feedback from other artists at every stage because you might overlook little details that another artist would notice.
Once the initial blockout was clear and I had the same proportions as in the concept, I started refining the model and working on the “blocking-plus”, adding more shape details, but without worrying about the topology.
I’ve always been inspired by Albert Valls’s work and had the pleasure of meeting him in person and attending one of his master classes, where he taught us some of the techniques he uses to achieve such good high-poly models. I wanted to challenge myself and make the whole high-poly model using Subd technique like him, with a good topology flow and only quads if possible. This workflow takes more time, but it’s more fun for me and I learned a lot.
Quick Tip: Using a high-specular level material will help you to easily see whether or not you have pinching when you smooth your mesh.
For Subd modeling, it is really important to keep in mind the distribution and polygons flow. Avoid having large edge loops all over the shape if you don’t need them. Using RapidTools really helped me to achieve a fast modeling workflow. When working with cylinder details, I always try to use 8, 12 or 16-sides cylinders - that way I always have symmetrical shapes to work with and I can distribute all the loops easily.
When modeling any high-poly model for video games, I always make sure to smooth it more than how it would be in real life. You should exaggerate your chamfers to make sure it’s smooth enough for your normal map resolution - that way you will have better baking results and the smoothness of the edges will be appreciated from a far distance.
Try to avoid straight angles in your shapes when adding details to a high-poly model. This will give depth to your normal map and make it much more interesting.
3ds Max modifiers are really time-savers when I have to make a low-poly mesh from my high-poly. I always stack some edit polys in each object while modeling and the last one is used to contain all my support loops. That way, I can duplicate my mesh, delete TurboSmooth and the edit poly with the support loops and quickly have a low-poly mesh almost done. Then I remove all the elements I will only use for baking, like some screws and small details.
As I wanted this weapon to be a portfolio piece and not an ultra-optimized game-ready model I decided to add more geo in some details like screws, holes, chamfer in some edges, etc. Don’t be scared of adding more geo, it’s ok and will give you a better silhouette and more interesting details. The whole model contains 9.143 tris, which is pretty good for an FPS weapon.
Having a good UV layout will help you get the maximum resolution possible in your texture. Here I decided to split my model into two different parts so that I could avoid working with too many symmetries and be able to apply all the details on both sides. Something you have to keep in mind for hard-surface models is aligning your UV shells perfectly along the u- and v- axes. This will help you avoid having aliasing in your normal map caused by pixels. Even if it means minor texture stretching, it’s well worth it to keep your UVs as square as possible.
I usually set the smoothing groups to 35º and Flatten by Smoothing groups - this gives me a good starting point. After fixing some cuts and stitches and making my UVs straight (not every shell can be straightened though) in 3ds Max, I send my model to RizomUV for packing. RizomUV has some awesome tools for setting the texel density, padding and packing, and that’s the only purpose I use the software for. Here you can see the settings I like to use for my final packing:
Once you’ve set all the symmetries in the model, make sure to move the mirrored UV shells to a different UDIM.
Before I start the explanation, I’d like to point out this awesome tutorial by Carlos Lemos about the baking process.
The first and most important step after finishing the UV packing and before the first bake is setting Smoothing Groups from UV Shell. Working in Max, I use TexTools for that by clicking “TexTools/Tools/Smoothing Groups from UV Shells”. Without it, you'll have gradients and artifacts in your normal map which makes it look weird and generates incorrect reflections.
Once I am in Marmoset Toolbag, I like to use the “Quick Loader” so that I don’t need to waste time on making explodes or manually moving each mesh to a different bake folder. Just make sure your mesh is named XXX_high and XXX_low and Marmoset will automatically create the folders.
Take your time when baking to make sure everything is good, a perfect bake will never happen on the first try. I usually set up my material with 0.3 = Roughness and 1 = Metallic to make sure I can see if there are any weird artifacts, gradients, etc. in my mesh. In rounded shapes, to avoid “waviness”, add a TurboSmooth by Smoothing Groups to the low-poly mesh for the bake. It creates a smoother shape without losing the silhouette. Make sure you delete the TurboSmooth once the bake is done.
As you can see, TurboSmooth doesn’t modify or distort the UVs but makes the 3D shape smoother which reduces the difference between the high- and the low-poly mesh and improves the bake. If you want to learn more about how to avoid waviness, here is a good article for that.
Usually, I like to bake, - at least normal map and AO, - at a double resolution of my final textures (so if I want 2K, I bake at 4K). For baking the Pistol I used 8K. Also make sure you bake in 16/Bits, Mikk Tangent Space and use as many samples as you can.
Click Paint Skew to correct details that have been recorded poorly due to an off-axis projection direction. Be careful not to paint where there are UV seams.
Roughness and normal are really important if you want to achieve a good result when working with PBR. A wide and contrasting range of specular details makes the difference between materials, and a nice level of micro details in the normal map gives them the “realistic” look. A good trick is to inspect your model from a really close distance and a far one. Usually, artists care more about the closer details (micro details) forgetting about the details from a far distance (macro details), which is really important for an “In-game” model.
I usually start the process by applying basic colors to my mesh, this is a good way to break up the overall look of the model and start working with roughness to define the different materials of the model. Make sure you have good material references. After this base layer, I generally overlay it with similar layers, varying color and roughness masked by procedural grunges to create a base breakup. I don’t generally use the material view in these phases, instead, I pretty much always refer to the color and roughness views and use precise values.
Having a good color variation is also really important, I usually watch Simon Fuchs’s tutorials from which I learned a lot about this. Any material should have a color variation in it, don’t just apply a flat color.
As you can see I like to use a lot of gradients only in my Base Color. That way I can achieve more variations and add a bit of story-telling to my textures. Once you have a good base material, the next step would be to think about “How does it work?", “How is it used?”, “Where should it be dirtier?”, etc. and add details depending on that. Avoid making basic materials without any kind of “history” in them.
Quick Tip: I usually like to slightly add the AO map from the bake on top of the Base Color as a Multiply layer. This is not exactly correct in PBR, but it gives you a more interesting color in the occluded areas as you can see below:
I don’t think I need to tell you to keep all the layers and folders organized and with the correct naming, right? Believe me, this saves a lot of time.
Before starting the rendering, I like to check Artstation for similar artworks and use them as references for my project.
The main point is to make sure all the results of my hard work are seen in one image. Usually, we spend a lot of time making several renders from different points of view, which is really good, but keep in mind that the first impression is the most important one. I like to start by moving my camera and trying different angles to find interesting points of view.
Once I’m comfortable with the camera view I try differents HDRIs to achieve the look I want. Check HDRIHaven if you are not satisfied with the Marmoset pack.
My lighting setup is really simple: 2-3 main lights to make the model visible and 2 Rim lights.
Using “Hejl” Tone Mapping mode in the camera settings gives the render a really cool contrast.
Since I used blue emissive maps in the pistol, I thought an orange light from the back would give it a really interesting look.
If you need help with the scene setup in Marmoset, check this tutorial made by Gregory Trusov.
Quick Tip: Once I’m happy with my render, I go to Photoshop and add some extra tweaks that make the render more interesting from my point of view.
I really enjoyed working on this project and it has helped me to improve my skills in modeling, baking, texturing, and rendering real-time guns in a short amount of time. Always try to enjoy your projects and learn as much as you can. Ask for feedback from other artists regularly, they will help you see the mistakes and improve them.
Follow and draw inspiration from your favorite artists - keep up the good work to achieve their level and find your own unusual style.
If you want to ask me anything feel free to send me an email to email@example.com or PM on Artstation or Instagram.
P.S. I hope you are all fine. Be aware and take good care of yourself and others. #stayhome