I’ve been hooked on Overwatch lately and there’s nothing like a beautiful environment that makes me want to dabble in 3D again. Using a few open source tools, I exported some models and textures for Reaper from Overwatch to play with. I quickly found that a decent amount of work was necessary to do what I wanted.
Once the mesh was cleaned up, I worked on repainting some areas of the textures because they were low resolution for my standards. This was taking a while, so I focused on the important areas of the image instead of the whole texture. Reaper might be the easiest of the characters to do this with, but the textures weren’t easy because of their darkness and compression artifacts. For the most part, I ignored the normal map because that does not work well for a 3D render. Instead, I painted a new bump map for a few important areas.
I used the shader I wrote for 3Delight for everything in the image, but I made a few important modifications to it. First, I included a weight remapping parameter. I was simply using the ‘mask’ of each layer (like the diffuse color or reflectivity amount) as the ‘weight’ for ray sampling, but for very dark textures it created a lot of noise in the dark areas. So, Reaper’s mask was perfectly sampled, but the clothes had too much noise. Now, I can specify a min/max range for the weight so that darks don’t get too underweighted. Then, I previously used a checkbox for whether the material was metal or not (which activates a lot of alternative calculations), but this did not work here because most of Reaper is a single mesh and a texture decides what’s metal or not. So, I went with a simple solution to allow this to be set by a texture, but it only checks if the value is above 50% to be metal, so it’s still an on/off feature for now.
I learned many tips and tricks for working with Overwatch data, so I’m just considering this as ‘stretching my legs’ for what I can do with it. I plan on making more of these with other Overwatch characters.