Think of this as part 2 of the asset tools saga for Vox Machinae. Whereas the previous post uncovered the inner workings of our 3D asset modelling and preparation process, this post will give you a glimpse into the unique texture workflow we’ve come up with to combat “that indie look.”
As with the asset modelling/prep tools, the continuing emphasis is on reducing manual labor and time lost on redundant/repetitive tasks. So we took a long hard look at the texturing software landscape for solutions that talor to enhancing workflows. Since the intent is to develop a game that makes use of generative worlds it made sense to seek out similar options in asset texture creation. The software we decide on integrating was Substance Designer (referred to as SD from now on). Right around the time we began evaluating it, a new version promised to support PBR texture workflows, which was also something we were looking into, so it became a perfect fit for the job.
The process of building textures for use in the game is different than your average photoshop job. When the geometry is primed and ready to be passed off to the texturing, we have some baked maps representing material types, garbage masks for bevels/panels/effects, and in some cases baked lighting for interior lighting. The maps are imported into an asset-specific SD graph, which is where you assemble your texture using a node-based layout. It describes all the connections between image maps as they get blended together and fed into other nested material nodes to generate the final outputs.
What ultimately gives textures their look and feel comes from a library of base PBR materials graphs. It’s a collection of materials I created to cover a wide variety of surfaces such as various metals, leather, glass, dirt, plastic, etc. These materials are a combination of procedural noise maps and small texture patterns that are blended together, some using our masks as inputs. This library serves as a foundation, since all the textures that end up in the game have nested collections of these materials inside of them.
The actual texture creation part of the pipeline is mostly about combining base materials together using the mask maps and tweaking values to give them a unique look. These are then layered with various effects such as paint chipping, dirt buildup, decalling, weathering, and grease/oil slicks to create a more varied surface appearance. Since this is all done non-destructively and with maps that came from the 3d package, this process can be applied to other assets easily.
As the development process continues to evolve and the base materials become more refined, all materials setup this way will benefit from the changes. So updating assets becomes less of a chore since they will automatically receive the visual upgrades. This will make maintaining asset textures simpler, so more time can be spend on improving the visuals across the board.