The goal of this project is to upscale the texture maps for Dawn of War Soulstorm. To achieve this I'm using Tensorflow and ESRGAN (Enhanced Super-Resolution Generative Adversarial Network) to perform a HD upscale by 4x.

Post news Report RSS Project Overview, Timeline and Limitations

Currently working through the playable races. I'll be releasing each race as they are completed. Currently only a few issues but nothing major. Timeline to get playable races fully upscaled is approximately 2-3 weeks depending on other time commitments.

Posted by on

Project overview:

While I haven't modded in several years and I haven't touched Dawn of War since 2011, I've been playing around with AI upscaling of images for work. Out of interest I tried the ESRGAN model on some of the Dawn of War Soulstorm textures to see whether the game would handle upscaled assets. I was really happy with the output for the Necrons so I decided to turn it into a full project and share the HD textures. Now that the code is written and seems to be running reliably it's just a matter of throughput and I'm hoping to get through everything without too many issues - hopefully only a few weeks to process everything.

Limitations:

  • Badge sizes - The original textures for majority of the models are a pixel resolution of 512x512 and when upscaled are now 2048x2048. Unfortunately, from what I've found, Badge decals in the game are locked to 64x64 pixels. When applied to the new upscaled textures, they look by comparison 4x smaller than they originally did. It seems like an okay trade-off in my opinion to make the details sharper.

Badges are smaller due to texture upscaling

Badges are smaller due to texture upscaling

  • Texture file types - Dawn of war seems to use two file types to handle it's textures. WTP files are the file types that I'm upscaling at the moment. This is the file type that is team colorable and is what is loaded in for the army creator, multiplayer and skirmish missions. RTX files are single-layered textures compressed with the team colors and badges encoded. RTX files are loaded in for campaign missions. I'll probably upscale these files later once everything else is finished - but since the badges are encoded into this single layered texture, this could be upscaled while maintaining the correct badge size.

  • Masking issues: Since textures are made up of several layers, where they interact can have strange artefacts if they are not pixel perfect in alignment across the layers. These sort of issues are things I intend to fix by hand when all the races have been upscaled. My first priority is to upscale everything and don't plan on putting in any human interaction until after all the races have been finished. The masking issue is only really apparent on the Guardsmen model at the camo pattern at the moment.

Masking issues can be seen where the camo patten has been upscaled differently across layers

Code availability:

My intention is to make the code available on Github so that anyone interested in texture upscaling can just apply it. I'll also include an explanation and walkthrough of the process I've used to achieve this. But first I want to make sure everything is running reliably and well documented.

-Wright_oh

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: