Warhammer 40,000: Dawn of War 3 - Discover Relic Entertainment’s Texturing Pipeline
The long anticipated Warhammer 40,000: Dawn Of War 3 came out today to the delight of the Warhammer and RTS gaming community. As in the Warhammer universe, the painting is one of the most important and enjoyable steps, we couldn’t resist asking Relic Entertainment for some insights into their texturing pipeline.
Hi guys, thanks for your time for this interview. Could you introduce yourselves?
Hello, my name is Tristan Brett. I am a graduate from the Industrial Design program at Emily Carr University of Art and Design. I have 20 years of creative development experience in the video game industry. In my 10 years at Electronic Arts (1995-2005), my roles included Lead Artist, Designer, Technical Artist and Concept Artist. I have been with Relic Entertainment since 2006-present as a Principal Artist and my current role is lead environment artist on the Warhammer 40,000: Dawn of War franchise.
Hi, my name is Roland Longpré. I’m a principal artist here at Relic Entertainment with over 20 years of experience in games (15 of that here at Relic) in roles ranging from Senior Artist on Homeworld 2, environment supervisor on Company of Heroes and Art Director for DOW2. On Dawn of War 3, my role ranged from a tools development role (our Substance Pipeline, for example, used for surfacing our art assets) to mission lighting and map creation & dressing. Before Relic, I was at H2O Entertainment, shipping several titles, the first of which was Tetrisphere for the launch of the the Nintendo 64 twenty years ago.
How did you start using Substance on Warhammer 40,000: Dawn of War III?
Tristan: I started using Substance Designer in 2010 when it was originally released. My main motivation for using it came mostly from the goals of a lead in that I saw an opportunity for a more efficient texture creation workflow with consistent results. Using traditional 2D texturing methods is slow, inconsistent and doesn’t provide the type of rapid iteration and tuning control that Substance Designer does.
For which aspects of the game did you use Substance?
Tristan: We used Substance Designer for surfacing characters, props and many of our 2D map assets. Substance Painter was used for many of our environment props. Our character pipeline uses a very custom Substance template that lets us tune many individual components. Our environmental assets were built as sets that would share common Substances like stone, concrete and metals. We could easily tune the whole set and see the results in-game very rapidly.
By Michael Kessler
How did the Substance toolset integrate into the pipeline of Warhammer 40,000: Dawn of War III?
Tristan: Substance Designer was heavily integrated into our pipeline. We really wanted our artists to be able to focus on modeling so that we could essentially plug our models into Substance and then bake them out very quickly. We could then iterate and tune the details rapidly. We used source safe inside Substance Designer and created a WYSIWYG render window that very closely approximated our in-game rendering. We also created many custom nodes and Substance libraries.
Could you make a breakdown and show us how you used Substance on one asset?
Roland: We integrated Substance into our pipelines to help generate quick, consistent texture maps for similar "sets" of items. For example, clean, slightly worn Space Marine weapons, or rusty, chipped Ork weapons. The plug and play format to our templates allows the artist to focus primarily on modeling and sculpting, then baking out any necessary textures, such as normal map, occlusion, etc. (often right in Substance) and finally creating a colour mask ((image below) with predefined colours) to help the Substance graph identify what base material to apply to that particular area. Substance takes care of the rest, creating the diffuse, specular, gloss, etc. for the models.
Ork Boy Model by Yvi Mendoza
The artist begins by choosing from a variety of existing templates for the object in question.
Then he or she plugs in the normal, occlusion, etc. and generate & add any missing (e.g. position) from the low or high res model right in Substance. Most texture sets should be ready to export at least a first version now. If the artist wants, they can now swap out some base materials such as canvas for leather, or copper for gold, and fine tune a handful of available parameters to achieve the desired look.
Materials by Roland Longpré
A diffuse, specular, gloss, normal, emissive, pattern mask and alpha are generated automatically, exported and baked for review in game. Other templates have different outputs present. For terrain, for example, the pattern mask for team color is excluded, and a height map is available for tile blending in game.
Space Marine Bolter by Shih Kai Chang, Space Marine Heavy Bolter and Plasma Gun by Yvi Mendoza
Ork Slugga by Yvi Mendoza, Ork Shoota by Shih Kai Chang and Ork Deffgun by Gabriel Kessler
Star Fort vent by Tristan Brett, materials by Eric Testroete
Here are examples of some simple base material variations within acceptable limits (bright shiny new metal or rubber, or duller beaten older versions).
Space Marine Terminator Model by Shih Kai Chang
Materials by Roland Longpré
Sometimes more complicated sliders are available. (e.g. addition of rust over metal based on inputs such as curvature or position, and/or patches, color of rust, bumpiness or pitting of metal, etc.)
Deff Dread Klaw by Shih Kai Change, materials by Roland Longpré
The time we save with this system, which provides the textures for most of our line units and their weapons, allows us to spend a bit more time on our Elite Units, so they get a lot more love – and their graphs can look a LOT more complicated.
Driven by player customization, we always see character models with some form of team color applied, even in Substance, to ensure the same look and quality in game.
The team colorable parts of a character model actually look like this (gray, on left) with team colors being overlaid (via a pattern mask texture (middle)) and then, based on the player choices from the Army Painter, combined in game.
Our tools allow us to mimic this in Substance.
Space Marine Terminator Model by Shih Kai Chang
Defaults are already in game, but in the future, this system of creating pattern masks will, with little effort, allow us to create a long list of team color distribution patterns to help accommodate the vast amount of customization seen in the Warhammer 40K universe.
Space Marine by Yvi Mendoza
Assault Marine by Yvi Mendoza
A typical Template graph (created at the beginning of the production a few years ago) still allows a lot of tuning by the artist.
Graph by Roland Longpré
What were the main obstacles you overcame on this project?
Integrating Substance into our Export and Bake pipeline was initially a concern, however using Python and convenient hooks into the Substance Designer UI, our tech artist Jason Brackman was able to set up a one-button export solution that managed anything related to content management. It triggered the generation of the .sbsar and Texture Output at the same time, validated ALL linked files by ensuring proper placement of content and version control management. Additionally, it reported game engine manipulation steps including what was exported, any errors, and directed solutions when appropriate. From a technicalaArt perspective, every export follows a reliable pipeline making debugging and future features easy to manage. The artists are then left to spend more time thinking, creating, and polishing art for the game.
WYSIWYG: To ensure what we see in Substance matches as close as possible to what we see in our engine, our rendering programmer Daniel Barrero was able to create a Substance shader that matched the behavior of our in-game shader, to allow us to more accurately view our assets in the 3D view in Substance. This was a challenge for a few reasons; not a ton of documentation available at the time (so a lot of reverse engineering and trial and error), we use a different lighting model than Substance and we use Direct3D hlsl vs OpenGL glsl used by Substance. These were just a few of the challenges for us.
Consistency: Early on, getting all of us to use or create a base (set) of materials to ensure consistency among a set of props or terrain textures, or the desire to break out a small section of a graph to “fix” the look of something, rather than examining the inputs to see if something’s wrong, or going back into the original base material to fix it there. All of these shortcuts guarantee inconstancy in the final art.
What is your favorite feature in Substance Designer/Substance Painter?
Roland: So many. Slope blur for adding leaks (using position) or chips in cracks (using a noise), histogram scan for a quick simplified version of levels. The ability to create a tool node (we have LOTS now) to prevent messy graphs and to speed up artist workflow. Some of our artists are GREAT at asking “I do this a lot and it’s a mess… can I get one node with x inputs and y output that does z?” The answer, invariably, is yes. These are enjoyable challenges for me.
Tristan: Like Roland, I have many favorite features but I still get teary eyes when I plug in a high/low poly model combination into a Substance and bake for instant results. I also really like the tri-linear node that will link noise/patterns between UV islands to make the texture continuous.
What is the next feature you would like to see in Substance Designer/Substance Painter?
A decal feature of some sort, to add images like stickers to a model. Currently, it’s possible but messy, not intuitive, and was a bit of a mystery for awhile. I’d love a node similar to 2D transform that would have an image input (as a full material ideally), applies it 1:1 resolution to the texture, based on the parent size that would allow me to position the texture where I want it (perhaps this exists in Substance Painter?).
An "organize" function (like some 3D package node features) would be nice. Our team has become more organized out of necessity using custom nodes colored frames but it can still be a challenge to dissect complex or older graphs.
A big thanks to the team at Relic Entertainment for delivering us some details of their texturing pipeline. Now it's time to play!