Dynamic Multi-Layer Texturing in Action Arcade Wrestling 2
Creating a dynamic high performance texturing system
A little over a year ago I was contracted by Dave Horn, the creator of the Action Arcade Wrestling series, to help transfer the game to the awesome SunBurn Engine and implement a few things like the UI and Save/Load functionality just to name a few.
Dave had a functionality in mind where the Wrestler had customizable clothes, skin and face features using a blend shader. Though this worked it used way too many resources, memory and performance wise because it had to sample from about 14 textures to composite the final result every frame. After thinking of ways to reduce the performance hit I had an idea to pre-composite all 14 layers into 1 pre-rendered result texture which is then applied to the Wrestler.
Using that technique, I effectively eliminated any performance hits that the custom shader brought and was able to use the default SunBurn shader. The compositing of all the layers is done during load time and is therefore unnoticeable to the player. The only exception to this is in the Create-A-Wrestler mode in AAW2, here the player has the ability to edit each layers texture and color. Each time a property is changed the layers are re-composited and the result is applied to the Wrestler for previewing. This had to be handled carefully to avoid memory issues and not stall the game for too long.
The result of this work can be seen in this video:
More on the work in AAW2 coming soon, please comment on what you think of this post and what you would like to see next.