Leon Fotevski comments on the challenges of finding the right references for designing military vehicles in 3D, explains how Tunguska was modeled in 3ds Max, and discusses the neverending dilemma of choosing between an artistically correct and a believable, true-to-life look.
In case you missed it
You may find these articles interesting
My name is Leon Fotevski, and I live in Skopje, Macedonia. I enjoy long walks on the beach and cooking (I guess the reason being they both involve baking). I have about 3 years of experience as a hard surface/vehicle artist, and I have mostly worked on smaller titles like Heliborne, and DCS F-14. Currently, I am working for a startup called Meta Immersive Synthetics as a freelance artist.
Funnily enough, my degree is in sort of the opposite spectrum, in software engineering. I had always wanted to work on games since I was a small child, and programming them looked like it was something that would be right up my alley. However, somewhere midway during my studies, I found it really wasn’t something that suited me and it wasn’t something I enjoyed or had the patience for, I still managed to trudge through the studies and get the degree. At least I feel like that wasn’t a complete waste of time, as it has given me a different perspective on how computer graphics work and how performance is impacted by the model you create.
I digress, 3D art, video game art to be specific is something I always found interesting, probably stemming from my love of building model kits and Legos as a child, and being really inspired by games like Metal Gear Solid, Ace Combat, and the old NovaLogic titles.
I learned 3D modeling on my own, by watching an absolute ton of tutorials, however, military aircraft and vehicles were something that interested me a lot. Sadly, there are very few tutorials and almost no good tutorials on the subject so what I did was I studied the topology of other people’s renders when they were kind enough to provide their wireframes and using model viewers of games to look at their models (something I deem to be an excellent resource for studying, and I highly recommend it).
Creating the Tunguska AA Vehicle
The reason for creating the Tunguska isn’t really special. It was created because there was a need for it really, so there isn’t much special about the idea. However, it is one of my favorite vehicles so I gave it my all in making it, and decided to make the newest version as I felt it would be more usable going forward.
This is where the M1 part of 2S6M1 comes into play, as it represents the newest version of the vehicle. The decision was made to create the vehicle using standard sub-d techniques as the Tunguska shares its chassis with a slew of other vehicles and it would be easier to modify it later on, and things like the light fixtures and other stuff are shared by many different Russian vehicles, so you get standardization on how certain parts work, and later on, you or a different artist won’t need to worry or spend time creating something that has already been made.
To start the modeling process I spent a day or two just hunting down references all over the Internet. As I was making the newest version it was a bit harder to find good references. I quickly noticed that the blueprints available online are not even close to the look of the real thing, and I’d say that generally online blueprints aren’t really accurate, and comparing your subject against real-life pictures is the way to go. Of course, not to say that you should disregard them completely as every little bit helps, and blueprints even if not accurate can help you create a base model much easier. A little trick I do when searching for military references is to always search in Russian as well as English since you can get some really good information from the Russian side of the Internet.
By searching in Russian, I was able to find measurements of the entire vehicle, how tall and wide it was as well as its ride height. I was also able to find exact measurements from a Russian kit modeling forum where a person went to a museum and measured the angles and lengths of different areas of the vehicle as well as its wheels and to top it all off he even had the exact amount of track links, which was really helpful because if you make everything correctly you should get the exact amount of track links.
The magic number was 113 in this case. As for the type of references, I try to gather real-life ones, as many of them as possible, but sometimes for areas that I can’t find any pictures of modeling kits can be a lot of help, since these companies usually go and take the references of each and every part themselves, and sometimes actually cooperate with the companies that make them, so some of the better kit manufactures can be quite trustworthy. What they make shouldn’t be taken as gospel, but just another little guideline to help you along the way.
The way I approach modeling of the vehicles is to try and use 3ds Max’s strengths as much as possible to speed up the more technical parts, so I use instances and the modifier stack as much as possible, I’ll talk about that a bit later.
The first thing I do when I start on a new project after setting up all kinds of references inside of the program’s viewport is to make sort of a base model, but not a complete one. I’ll admit making the entire model as a base and then adding details on top of it is the smarter way to go, but I find it a bit boring, and laying down support loops is almost therapeutic for me. For that reason, I do a bit of a half and half approach.
I started by creating a basic shape of the chassis of the vehicle and then went to create the suspension and wheels area, this was quite a long process as it took a lot of comparing between references and my model to get the height of the bottom of the hull and the angle the suspension sits at to be correct. Which also needed the spacing between the wheels to be correct as well, so that later on my tracks would fit correctly onto the entire wheels’ assembly. In the end, I had something like in the picture below.
The wheels are all done using standard poly modeling techniques. I also employ quite a bit of Boolean (ProBoolean to be specific), to cut out or insert parts and pieces.
I’d like to mention an important thing here that is used on the rest of the vehicle and that’s that all my support loops are quite far apart, which while being less realistic gives you a much larger and smoother corner, which in turn shows up on the normal map much better, and in the end, you have a far more realistic look to your vehicle, especially when dealing with smaller resolutions or smaller texel densities.
Another thing is that all the duplicate parts seen in the picture are instances of each other, this lets me optimize and unwrap only one part and all the others will be modified automatically.
Next, I made the track links, I made a singular track and then copied it around a spline that I made using a script called TrainMaker, but it’s not something I’ll use again, it is a very old script and doesn’t work all that well anymore (a lot of crashes and errors). I believe a better way would be to do it manually according to the following tutorial below.
I made the track link shape from a nice picture I found which was taken almost dead on flat against the bottom of the track, so it made things easier to get the right let’s say footprint shape.
Again all the track links are an instance of the main track link, this same main link will be used in the baking process later, so really the track links are there to see if everything fits correctly (that magic 113 number), and slow down the viewport!
The track link is again just your bog-standard sub-d workflow, the wireframe isn’t pretty but it subdivides fine so that’s all that matters.
The rest of the hull was made just by comparing images and I also camera-matched some images to get a good feeling that the shapes were all in the right spots, this was quite useful when it came to creating the turret later on.
Here I also created a base for the turret to give me a good feeling of where the turret is supposed to be on the hull and what size it should be.
The modeling is quite a simple box modeling: a little Boolean where needed and some support loops. Still some parts were a bit harder to create especially when it came to the hatches. The way I made them was to think ahead and see how I would need to optimize them later on. So, to that end, I created a base without any support loops and then added an edit poly modifier on top. This means when later on I had to create the low poly I just deleted the edit poly modifier and I was halfway there.
After adding loops with an edit poly modifier on top, one has to be careful here, 3ds Max has a bit of an issue if you do too many changes or too many modifiers with an edit poly on top, and then undo, something happens and vertices will all move in random directions, and you won’t be able to undo anymore. So, in my opinion, it’s best to make a part, and then just add support loops with a singular edit poly on top.
Another interesting workflow I discovered while making the Tunguska is creating cables in a really easy and unique way, by using the displace modifier, and a height alpha texture to make the cable winding shape. For this, I followed a tutorial made by Paul Neale.
The end result is a bit heavy on the polygon side, but it really bakes well, because everything is attached together, and there are no sharp lines where a cable winding meets another cable winding.
For the turret, I took the base shape and used Boolean to attach the different parts together and added extra details, though the gif below doesn’t tell the whole story, I made it bit by bit. As I would start working on a different part like the radar, I would modify the turret or add extra details.
Next, I started working on the different details of the turret. Truth be told the details and the shapes of different parts and devices on the turret are quite complex and the entire turret took me about as long as the rest of the vehicle, especially the cannon, missile racks, and radars took the longest since they need to be animated, so them being accurately made and placed in the correct position is quite important. Still, they all involved pretty basic modeling and a lot of comparing to reference pictures to get them in their proper positions.
One of the interesting areas was the rear or rather the scanning radar on top of the roof of the turret. I made the dish, by first making a simple flat plane in the shape of the radar's dish and then used two bend modifiers to give it the correct shape, after which I could both create the details of the dish and the rest of the frame for the scan of the radar.
The extra details at the end were again just some Booleans for the extruded parts and the scaffolding type holes were done but just using the cut tool and the slice plane tool.
I also decided to add a bunch of wires to the radar that I saw in the reference pictures. And while they do increase the poly count a bit, I feel that it gives a bit of realism and grounds the asset much more. To make them, I just used the spline tool and then edit poly modifier to duplicate and create the different plugs.
Creating the Cannon
The cannon and the missile racks were one of the more challenging parts of the Tunguska because you have a lot of parts that need to interact with each other. I began working on it by looking over documents and pictures to get a good feel of the placement, and scale of the cannon and its different parts. An important thing here is that I found that the cannon needs to extend farther than the small radar in the front (the tracking radar), and the lowest angle it can aim is 11 degrees. That helped me immensely in creating the cannon.
I started by creating an entire blockout of the cannon, and I also created blockouts for the missile racks and the little shield at the sides of the turret (I, unfortunately, don’t have pictures of it), the blockout was very simplistic, just primitive shapes to easily let me adjust and scale the different parts till they looked like something I was happy with. I then continued with making the cannon in more detail.
To create cylindrical parts with a ton of smaller details on them, I always start with a cylinder with 16, 32, or 64 sides. I find this both works well for getting a nice quad topology which is very important on a cylindrical or curved surface, and it makes optimizing later on for the low poly model much easier (you can also do 12, 24, 48 if you so fancy).
After I Boolean the small pieces together I add an edit poly modifier on top and start adding support loops.
Low Poly and Unwrapping
There isn’t much to say about the low poly creation, it's just about removing edge loops, and with the help of instances and the edit poly modifier, the process is sped up a lot.
UVing and Unwrapping
For the textures/materials, I used 5 UV sets:
4. Cutout alpha and vent mesh textures
For the unwrapping process, I use an addon for 3ds Max called Unwrap Pro. It’s excellent even though it’s a bit expensive, it makes the unwrapping process much, much faster and easier, it’s almost enjoyable… almost. What Unwrap Pro actually does is it adds a new relaxing algorithm that’s quite fast and allows the user to use this algorithm along with 3ds Max's pin system and this is a huge help when it comes to making nice and straight UVs.
For packing it was really nothing special, even though I like to manually pack things since I have a better overview of the UVs later on when texturing. For the sake of saving time, I had to auto-pack, and I used a UV packer, it’s pretty simple and does a pretty good job. I like using plugins more than external programs, since it means I can keep my instances, and also, I just can never trust the whole process of exporting and importing stuff back.
After this, I move the stacked/mirrored parts outside of the 1-1 UV space.
I began the baking process by first giving every part of the vehicle a proper name with “_high” and “_low” suffixes, this will be helpful later on in Marmoset Toolbag 3. The suffixes will be used for creating automatic groups, removing the need to explode your model.
Still, I did do some exploding, because I like for different groups to occlude each other, yet having that on objects that need to be animated won’t result in the best look. So, I moved all the bits that need to move away from the main model, and to still give some occlusion to the places where the objects are supposed to be, I created simple occluding objects.
Once I export to Marmoset Toolbag, the entire baking scene is already all set up, and all I need to do is check if all the parts bake fine and just sit back and wait.
Here we can see all those spread apart support loops really doing their work to give a nice realistic look.
I started the texturing, once again, by looking over some references to get some interesting dirt and material ideas. I also took a look at what kit modelers have done. While some may say this is wrong, kit modelers have to deal with similar issues as 3D artists, where you are working with a limited surface.
Specifically, I found some images on this website that helped me get some nice ideas on what to do.
I textured the entire vehicle in parts, first I made the hull texture then copied over layers to the turret and adjusted the layers so they looked nice. I started texturing by doing the normal work, creating the welds and the little lines on the rubber parts of the wheels. For the small lines on the rubber parts of the wheel, I just drew some simple shapes and placed them in the correct position on the texture.
Afterward, I painted on the layers, using a brush addon called ST Welds, it’s very simple and does a good job, since I wanted something quick (sadly you can’t buy the addon anymore).
I usually make materials in stages, first I start with a pure height material where I add a few different kinds of grunge to give me a look that I am happy with, then I mix and match them. Then I move onto roughness layers, colour layers, and finally dirt layers. I also give roughness layers a bit of colour and colour layers a bit of roughness depending on the material I am creating, for example with rubber or plastic materials, this is pretty much always the case in real life that if something scrapes or scratches the material or makes it worn out, it will not only change its roughness but the colour will change as well.
When it comes to the track texture, it has a single link as a unique UV and the rest are copies of it.
This is a representation of the height part.
The rest of the track material.
The same approach was used for the side skirt, I just layered a bunch of subtle layers to give it a natural look.
For the main hull, I made a base material where it is clean, and then I started adding wear, leaks, and dirt on top of that, this same material was later copied onto the different green painted parts of the Tunguska and adjusted.
For the edge wear, I decided to not have much bare metal showing, as it is not very realistic, you won’t see many military vehicles with their paint chipped off to the bare metal. Of course, this makes it harder to give the vehicle an interesting look, so I decided to make edge wear where instead of metal I would have different layers of base paint showing.
Here's the way the edge wear masks are built:
Again, I layer multiple layers to add or remove edge wear.
Next, I created some leaks to give a bit more unique detail to the texture. I just used some leak grunges, scaled them, and projected them using the Planar Projection setting, then I edited the projection to make it look nicer.
For the dirt, I used some of the same workflow as before just layering grunges and different layers to get something I liked the look of.
The more interesting part is the dirt spots, which are very simple I just used some spotty dust Photoshop brushes and stamped a bunch of them in orthographic view to get the final look.
For the cannon, I used the very same stacking.
The rest of the turret is textured from the same material I made for the hull, just adjusted where needed.
The rendering was done in Marmoset Toolbag 4, and here the new real-time raytracing setting really helped me a lot and worked quite well even though I have a non-RTX card.
I first made a big curved plane and placed my asset on it to have a bit of a background gradient in the renders. The rest is a simple lighting setup, 2 lights plus the HDRI as a fill light.
To me, the camera setup settings are quite important so I spent a bit of time adjusting them to achieve a look I liked.
Adjusting the curves in the curve editor is very important to me as well as it allows me to give the image some more contrast.
As for the rendering settings, I found these settings to work well for me in this case.
As for post-production adjustments, I try to avoid doing too much. I don’t really know why but I find it more interesting to have as much done as possible in the rendering program. In this case, however, I did do a slight levels adjustment in the finished images.
Well, that was perhaps a bit too long, huh? Anyway, the difficulty in creating big models like this that have a lot of small details is getting the hang of the vehicle as a whole since you have many intricate parts that interact with each other. The most important thing is to not rush, especially in the blockout stages since if the blockout is off, then your entire model will be off, and it’s important to continually check against references. As nice references are the most important part, you want to get as many as you possibly can because they will really help you, sometimes the position of a small part can help you immensely in figuring out the placement or scale of another part or even the entire vehicle.
It is also incredibly important to have everything organized and easily accessible within your files, and to name all your objects properly, and have them in proper layers (high and low layers, turret, hull, gun layers as an example) since if you don’t do that you will easily get lost and it will make the entire process much more difficult. On top of which if you are working as part of a team someone will need to open your files at some point, so don’t greet them with “Box231251”, it’s not very nice, and that person will hate you for your laziness.
The hardest part I’d say was firstly getting the model to look like it should when compared to the real thing, and the second hardest was the texturing process since it is quite large and has a ton of big and small parts, yet at the same time, the resolution for the size of the object is quite limited. The difficulty came from trying to get away from the feeling of the vehicle being a big green box, while still having a realistic look to it.
As for people who want to do more vehicles, my recommendation would be to not rush anything, take your time, and do a good job. I see so many new people try to make something in 10 hours because I’m guessing they see these artists with 20 years of experience that can pump out amazing work in no time flat… That’s just not how these things go, and as a wise man once said "First you get good, then you get fast."
The second recommendation would be to study your subject well and collect a lot of references. Finally, it would be to not be afraid of taking criticism, and improving your work based on it, learn from your betters and all that. I’ve learned the most just by listening to critiques of my art, and even if I thought they were wrong in my opinion, I went and tried to change my work according to those comments anyway only to see that the end result was indeed better. As Sun Tzu said pride is the sound before defeat, and it applies to anything in life I feel.
As for helpful tutorials, unfortunately, the way tutorials are with vehicle models, the area of non-car tutorials is a wasteland (at least we aren’t talking about aircraft, oh boy!). There are a couple of ones I can recommend, however, but even then, it isn’t a lot, and you’ll need to learn from a ton of different sources where they cover a specific area instead of the entire subject from the beginning to the end.
One complete tutorial that I think is pretty good is the T-26 modeling tutorial. Now if you aren’t much of an oldy tank fan it’s a bit boring, but it takes you through the entire process so that’s very good! The biggest caveat is that it is in Russian, so if you don’t know Russian well it’s going to be a bit harder to follow. Next would be the Warthunder Wiki page, as it has quite a detailed article on tank track creation.
Finally, you have this amazing page. This isn’t about tanks or military vehicles specifically but it’s for video games which is still quite a rarity, and you have a nice explanation of how to bring it all into UE4. The best thing is it’s very cheap.
For texturing I always take a look at what kit modelers do. They give me good ideas on how to make big *insert color* boxes look more interesting and sort of hyperrealistic, I like that overblown aesthetic.
That would really be that. Thank you for getting to the end, gentle reader, and thank you to 80 Level for giving me a chance to talk about all this. I wish everyone the best of luck!