Read on if you are at all interested in art, and the tech that supports it in Overwatch.
Blizzard's games invoke enthusiasm for a variety of reasons. Many will reference the ability of Blizzard to think up amazing worlds, or their dedication to simple but layered gameplay. The art of Blizzard's franchises also gets a lot of praise and attention.
One of such art fans is Discord, a beta player who happened to create a post on the official Overwatch forums to discuss the art of the game. This post sparked quite an interesting conversation about the technical details of balancing quality of art with game performance.
For one, another user called Furl went through the effort of mapping the textures of Widowmaker. The result is a scary but informative look into how Blizzard has puzzled Widowmaker together. He also included the additional layers that images go through to create the end-result.
Early on in the thread, Jeff Kaplan himself showed up and promised to get input from an art team member, and he delivered eventually. Thanks to Scott Goffman, Principal Tech Artist, for official information on the Overwatch player and weapon models:
”Triangles: A hero's highest LOD gets 30,000, plus 15,000 for weapons (7,500 each if they dual-wield). That’s not a hard cap; some heroes come in at 33-34,000, but every thousand triangles over 30k earns the artist one withering glare from the tech art team. They usually melt after 3 or 4 of those.
Each hero and weapon has 4 LODs, each half the poly count of the next higher LOD.
Textures: A hero + weapon + effects must total under 30MB after block compression. That one IS a hard cap, because violating it could cause memory overflows and crashes on consoles, and that’s Very Bad.
Textures are created in sets that are then combined by our shaders:
Color (24-bit RGB) + Ambient Occlusion (8-bit gray), combined into a 32-bit RGBA image.
Normal map
Specular (8-bit gray) + Roughness (8-bit gray), combined into a 16-bit image.
Emissive (8-bit gray)
That set is created for heroes at 2048x2048 (though the Emissive is usually reduced to 1024 or 512, depending on the needs of the character).
The same set is made for weapons at 1024x1024.
Heroes with visible skin also get a blood map (24-bit RGB) that our skin shader uses to fake sub-surface scattering.
Most heroes and weapons will also add 256x256 sets as needed for incidentals: Decals, accessories, droppable items, etc.
Heroes also share a set of eye textures (Tracer's, actually) at 256x256.
Bones:
Our heroes start with a standardized rig that then gets customized as needed. The maximum bone count is 256; most heroes use around 200-225, with about 70 used for the face (except Zenyatta of course).
Like with most engines, there is a maximum of 4 bone influences per vertex.
Because our heroes are so unique, we're always running into new edge cases. D'Va, for example, is set up so that the pilot is the hero and her mech is a "weapon"; but they're really both individual heroes that have to share texture resources.
Hope that helps, and good luck to all you aspiring game artists (/tech artists)!”
As stated above, a lot of different approaches are used to balance form and function. Every model has 4 LODs (Levels of Detail), meaning that models in your view upgrade/downgrade in quality dynamically based on variables like distance and importance. While computer specs get better and better every year, the inclusion of console editions has also (understandably) limited the quality of textures for all versions. Fun little detail that is also mentioned, is the addition of blood mapping for skin surfaces to replicate realistic skin differences.
We discovered this gem of information on the forums, and wanted to share it with more people. Let us know in the quickpoll if this kind of subject interests you!
For more competitive Overwatch news and features, follow us on @GosuOverwatch.