Making Of / 10 June 2020

Production Blog - Lannister Regiment Armour (Undergarments) Pt.2

Texture Baking

Throughout my time as 3D modeller I've tried out several baking packages. For many reasons, Marmoset Toolbag 3 (MT3) is one the best out there, so I do all of my baking there. I will further extrapolate on that in future posts, but for this process it's was really important to have a good cage. Arguably, I could have created my own and use it any software that allows a custom cage, but MT3 is affordable, really quick to learn and has other use outside of baking.

For this specific blog entry, there isn't a lot to point out when it comes to baking, other than the importance of correct edge triangulation.

Figure 10: Autodesk export options for FBX and OBJ

NOTE: Until now I was using FBX format for most of my production. For my technical renders I use quadrified mesh instead of triangulated, so that edge loops are easier to follow and the topology is easier to read. My mesh in 3dsMax was quadrified and I didn't turn on "Triangulate" during export, but once being imported into MT3 it was all triangles. I Later learned that is because there is another tickbox in the FBX export window called "Preserve edge orientation". This option requires Edit Poly to be on top of the modifier stack and actually stands for "triangulation in the polygon" and is there to preserve it. Disabling it keeps the mesh as quads, but resets any kind of manual triangulation you do in the modifier. For the baking process this wasn't essential, but I thought it was worthy of mentioning, since I came across this problem many times before and I always wondered why that is and how to fix. However, it exposed a different problem with FBX.

During my baking process I kept going back and forth from 3dsMax to MT3, to adjust the triangulation. However, I noticed that once mesh was imported into MT3, the triangulation wasn't always the same as in 3dsMax. I was still using FBX and even with "Triangulate" and "Preserve edge orientation" turned on I kept getting different results in MT3. Switching to OBJ and Faces as Triangles resolved this issue. So from now on I'm mostly using OBJ, since overall it results in more consistency when it comes to geometry.


As I mentioned in the introduction, I'm using mostly Quixel Mixer for my texturing, alongside Photoshop for some final tweaks. The software is still in Beta, but I knew I wanted to make use of Megascans so I gave it try. I will write side notes about specific situations I think are worthy to point out, but overall the experience is similar to the old Quixel DDO and Substance Painter (SP), except I would say Mixer is really easy to pick up and I find the UI more intuitive than SP, but that could be just my opinion.

Figure 11: Final bake of boots (Normal map, curvature, AO). Later stages of texturing process in Mixer.

Megascans has a large selection of leather materials and they all have different textures so there is a lot to chose from. I needed a very dark base and I turned out that it's not as exactly possible to take any leather and lower the albedo value. Unlike with DDO, there is currently no option to change how the albedo colour is blending over the actual the texture. From what I observed it looks like the colour is blended over using something like Overlay (comparing it to Photoshop), which as you can imagine isn't always desirable, so I hope in future we will be able to choose different blending options.   

One of the really useful features of Mixer is the "realtime" calculation of curvature, world space normals and position gradients, so you don't have to bake them, but at the same time it would be nice to be able to import your own. From MT3 I only needed to bake: Normal map, Curvature, AO and Vertex colours. I use the vertex colours as my ID map, although it's important to note that, even though ID map automatically detect different colours, there is no control over the threshold. And if you decide to mask something by ID you can't adjust the generated mask so you can end up with pixels that end up with no ID. There are ways to get around it, but it would be nice to have more control over it.

Figure 12: Discoloration map from DDO. Isolated Albedo channel and worn fabric mask and its mask stack details.

Fabric itself is one of the more complex materials you would use on your characters and is going to be handled differently in each engine. UE4 or any other modern AAA engines like Frostbite will let you use detail normal maps which can massively help to create a realistic fabric feeling, since you are not limited to just one texture resolution. Fortunately, Cryengine is one of them so I can use that later, but there is no option to preview that in Mixer at the moment. Nonetheless I still like to apply some fabric definition to the albedo and normal, since I use those maps to bring out some wear effect later. One of the important elements of a believable fabric material is the pattern and the grain direction of it. So the way the UV is laid out plays a big part and it's actually fine to have some sort distortion to the UV, since it's going to naturally deform with the mesh like a real fabric that stretches and compresses in certain areas. I find the UV ( or at least its orientation and shape ) created from MD to be almost perfect.

I found creating an interesting yet realistic albedo is one of the more challenging tasks, since it shouldn't be just a solid colour or only the fabric pattern. Large amount of dirt and a lot wear is being taking care of thanks to the game's complex material, so I want to create a good base with minimal dirt, but a bit of wear. However, the first step I do with most material is to break up uniformity with some sort of grunge map. Most of the time is a discoloration layer and there was a great material in the old Quixel DDO called Oxidised Metal. It was ideal for this purpose for the following reasons:

  • It's tileable, but doesn't have any obvious spots that become apparent when tiled multiple times.
  • Covers almost all of the greyscale spectrum and has bright and dark spots.
  • The pattern is fairly organic
  • Features complementary colours (yellow & blue in the RGB spectrum), which are one of the more natural colours.

Unfortunately, this material isn't present in the Megascans library, but Mixer still lets you bring in custom images as maps for any channel, so if you still have access to DDO I recommend extracting it and bringing it into Mixer.

Besides adding a tiny bit curvature based wear and wear from top where armour would be in contact with the fabric, I made of use of the fabric pattern applied at the beginning. Looking at reference, I observed that at fairly random places clumps of fabric strands are getting exposed resulting in bright spots. The image above visualises this features, shows its mask and its mask stack. Curvature from Underlying Mix was the basis for this mask.

Figure 13: Isolated dirt mask. Pants previewed in MT3.

The Mask stack (used to be called Dynamask in DDO), is nicely split into two groups: generator and adjustments. You don't have all blending options like you would have in Photoshop, but the ones currently present, are sufficient for the majority of tasks you will be doing. Just like with the shirt, I add discolouration and this time a more dirt, since it's closer to ground and more likely to get dirty. However, in terms of wear, I once again looked at reference and saw my pants getting worn a lot on top of the thighs and the around the butt, which makes sense, because those are the areas where there's a lot of stretching and contact with other surfaces.


When it comes to showing my work to public I like to make sure I show all the sides needed and make closeups of what I deem as important, but that is certainly subjective. In terms of lighting setup, I try to keep a neutral skybox and use a 3-point system (key-fill-rim). I do constantly experiment with different setups in MT3, so there might be some differences between the production setup and final portfolio-ready setup.

Next post will cover creation of the skirt and gloves.

Previous Blog Entry                                                   Next Blog Entry (coming soon)