Jan. 28, 2020
Texturing Multi-UDIM Assets for Heavy Machinery and Vehicles
Jason Pickford from Thunderstorm FX shares his work on heavy machinery, vehicles, and engineering.
Hi everyone! My name is Jason Pickford, and I’m the owner and director of Thunderstorm FX®, a 3D visualization and animation boutique based in Macclesfield, near Manchester, United Kingdom. That’s basically just me working under my own brand right now though. I specialize in the production of 3D content primarily for heavy machinery, engineering, and manufacturing industries and have been working in the 3D industry for more than a decade.
I’ve now been using Substance Painter increasingly regularly for several years, to the point where I now use it every day. It’s my favourite tool and fits well into my pipeline which also includes Blender and Unreal Engine. The functionality and tools it provides are priceless and have greatly enhanced my texturing workflow and helped me gain the attention of many new clients. In my humble opinion, it’s the ultimate texturing tool of choice for CG artists and gets significantly better with each new release.
Like most artists, I spend quite a lot of time gathering and organising high-quality reference materials before I begin texturing my 3d models. For this I refer to my vast library of books, online content, Pinterest collections and a fantastic program called PureRef which allows you to create boards to organise your reference imagery for quick access. If you haven’t already heard of this then go check it out as it’s really useful. You can also leave a donation to support the developer, which I’m sure he would appreciate!
The Concepts / Models
I always create my 3d models using real-world scale and a wide variety of different modelling techniques that typically include subD, boolean and procedural. I try not to get to hung up on this and just use go with the method that lends itself best to creating each individual model or part though.
Decaying Tanker Scene – Scene Size: 5M Polygons
I chose this concept because I’ve always been fascinated with grungy, decaying textures, metals, and objects. I also really enjoy manually hand painting materials using my Wacom tablet, so I knew this concept would be ideal for a multi-UDIM workflow and allow me to put these elements to good use. Although the concept might at first seem a little abstract considering the businesses I work with, it’s quite relevant. This is because I can find myself producing comparison videos that show how one material might compare to a competitor’s over a period of time, including how it might age or wear. As I’m always trying to keep things fresh for my clients, this just seemed like it would really stand out and be something they wouldn’t have seen before.
The Juggernaut Heavy Crawler – Model Size: 15M Polygons
I like to think that I had learned a lot about multi-UDIM workflows by the time I had completed texturing all the models from the previous decaying tanker ship project, so I wanted to put this experience to good use on another project ASAP. This time around I wanted to utilise and combine the experience I had gained producing 3d content for heavy machinery industries over the years with some of my other passions in life. Concept artwork, mechs, and robots. I have a vast and ever-growing collection here in my studio, which serves as a great source of inspiration.
The idea for the Juggernaut concept was inspired by gigantic quarry dump trucks produced by Belaz, Caterpillar, and Komatsu. These things are huge — so much so that you really must see them to believe they really exist. I took the basic concept of a dump truck and put a futuristic spin on it, replacing the wheels with giant legs and vastly increasing the volume of the cargo area to benefit from the additional support and balance they provided. Another feature I added was the ability to raise or lower the entire cockpit area to suit different terrains. If you look behind the cockpit you will see a track that makes this possible, which I thought would be a useful feature to include.
Decaying Tanker Scene
One of the first things I had to do before commencing with texturing was to decide on the type of environment I might eventually integrate the final assets into, as this would influence the appearance of the materials. I was eventually inspired by some of my reference materials and watching a couple of documentaries of ship-breaking yards, so decided to opt for a dry wasteland/desert environment.
Throughout the course of texturing the tanker ship (this applied equally to the smaller wreck model also) I tried to keep things as physically accurate as possible to ensure the best results once I started adding rust and wear. This involved building the textures up in layers as it would be in the real world, beginning with the raw metal and paint coatings. Substance Painter made this a breeze by providing a number of material presets that were ideally suited for this purpose (especially on Substance Source), which saved me a lot of valuable time not having to reinvent the wheel when it wasn’t required.
Once I was happy with the appearance of the original, undamaged state of the tanker materials, I then moved onto creating wear, ageing, damage, and rust. This was the part I was looking forward to the most, as Substance Painter makes creating these types of effects so much fun and provides endless ways to achieve it. From this point on, it was just a case of building up layer upon layer of rust, dirt, grime, and leaks to accurately match my source reference materials. To achieve this, I used a mix of filters, generators, materials, masks, and hand-painted layers.
Although many of the larger parts of the model were spread across multiple UDIM tiles, I had prepared for this by ensuring my UVs all had the same texel density. This step made it possible to copy most layers from one UDIM tile to another, where I would then make final adjustments to account for seams and borders between different parts of the model. Finally, I made sure that I created a preset of any brushes I used to paint height details so that I could reuse it to create consistent details (such as paneling, etc.) across multiple tiles if or when required.
The Juggernaut Heavy Crawler
Texturing the Juggernaut model was very much about experimentation, much more so than the previous project had been. This time I wanted to see just how far I could push both my hardware and software, just so I knew, should the need ever arise in the future. In total the model required around 106 UDIMs/texture sets. This number varied a little throughout the course of the project as some components were further modified, removed, or added along the way. Luckily, the process of re-importing my model whenever I decided to make changes was simple thanks to Substance Painter’s ability to retain texture information after doing so.
The biggest challenge I faced whilst texturing this model was probably baking the initial maps as I chose to initially bake the whole set using the maximum of 8K resolution, along with 8×8 subsampling anti-aliasing settings. I’m sure I could have achieved more than satisfactory results using much lower settings, but this was all about experimentation remember! I can’t recall exactly how long baking took, but it was definitely a long time which is pretty understandable when you think about it. The important thing is that it successfully managed to do it and this time was put to good use gathering additional reference materials and choosing an appropriate backplate/quarry location for my model.
The process I followed to create the textures was like the one I had followed whilst texturing the tanker ship scene assets. The main difference here was that the painted metal material would be far more important, as it would not feature anywhere near the same level of wear, rust, or damage. This meant I had to spend a little more time searching for and testing different painted steel materials before I eventually found the right one for the job.
Once I had finished tweaking all the settings to get the desired results the next step was copying this material to the majority of all the other UDIM tiles, which Substance Painter managed effortlessly. Once again, ensuring that you have a relatively similar UV texel density makes a big difference and will help to ensure consistent results across different tiles. In addition to the painted metal material, there were also several other materials required for various other areas of the model. This included glass, decals, and raw metal, which meant that I had to change my shader from PBR-metal-rough to pbr-metal-rough-with-alpha-blending shader. I also used several custom brushes and alphas to paint additional height details that included vents, panels, and welds. I then used applied anchor points to these layers to allow the height information to be used by materials and generators.
The next stage involved adding dirt, grunge, and grime. For this I used several generators, masks, and alphas, which I manually tweaked for every single texture set to ensure completely unique results. I then used a few different brushes with varying opacity, hardness and colour values to create dust build up throughout the model. Throughout this process, I frequently went back to my reference photographs to check where this would occur on quarry vehicles in the real world.
The final scene utilises smart materials, generators, anchor points, alphas, filters, masks, hand-painted, and height details. Almost all the texture sets also include more than 15 layers, and most of those use at least one generator or filter. Additionally, the actual Substance Painter file is 138GB in size. Despite these factors, Substance Painter managed to stay responsive throughout the process, and I think that’s damn impressive.