Junkster’s environments were built with the intent to minimise material and texture usage throughout the modular kits. Through trials and tests, I eventually wrangled our trimsheet usage down from a couple of sheets and tiling textures per surface type to a single nonlinear approach that could be adapted to most of our surfaces.
In order to prevent texture stretching or texel irregularities, meshes needed more faces in order to repeat lengths within trimsheet segments. However, too much detail in the texture would create unavoidable and ugly seams. Art direction asked that the environment avoid the flat nature of the building blocks, and take a more painterly approach.
The solution was world aligned overlay textures inside the shader. A greyscale mask is used to layer a chosen colour over the very plain base texture, adding in the noise and granularity we had to take out. I used a simplified triplanar mapping approach (sacrificing blending between cardinal planes in favour of cost) which allowed us to scale and tile the mask independent of the individual assets.
I then took this a step further. Up to 2 masks were required as per art direction, but with our target hardware being the Switch I wanted to keep texture references to a minimum and avoid a “masks” texture input, especially if only one mask might be needed at times. Instead, I chose to pack one mask into the alpha channel of the Base Colour texture, and the second mask into the Normal Map.
Packing a mask into the Normal Map presented its own challenges. Unreal does not allow an alpha channel in its Normal Map compression settings, so I had to find a way to rebuild a channel packed texture into something Unreal could use. In the end, I used a linear RGB texture, storing the mask and the RG channels of the normal map, then rebuilding the blue channel in the shader.
-------
Junkster is unfortunately in a state of publishing limbo, but I am still proud of the work we accomplished and feel fortunate for the opportunities it presented. I'm glad we still have the chance to show it to the world.