Warhammer 40,000: Dawn of War
0 of 0

File information

Last updated

Original upload

Created by

Daemonjax

Uploaded by

Daemonjax

Virus scan

Safe to use

Tags for this mod

About this mod

Formally known as the "Better SM Structure Ground Textures" mod. Replaces some of the worst textures in the Dark Crusade game as I get around to them. Some of these will work as-is with the other versions of the game, while others are specifically for Dark Crusade.

Permissions and credits
Tested with Dark Crusade.  I imagine it would work with the orignal DoW, Winter Assault, and Soulstorm -- but I don't know for sure.

Formally known as the "Better SM Structure Ground Textures" mod.

We all know Dawn of War 1 textures are low res, and that some look better than others.  A notable few look particularly bad and really stand out.  This replaces one of them (I intend to eventually tackle them all, unless someone else beats me to them).

Currently includes:
  • SM HQ cracked ground texture: Severe Image quality issue due to low resolution texture (256x256).  Replace with a completely new texture 1024x1024.
  • IG Race Selection and Commander screens background texture: Severe Image quality issue due to gradient compression which caused severe banding.  It now uses a touched up uncompressed tga image file of same resolution.  Also, the IG Race Selection and IG Commander backgrounds were using the same texture, I split them up so now they each have their own slightly different version of the touched up image.
  • FX: Some FX textures that were supposed to have smooth gradients were completely destroyed by compression artifacts which caused severe banding.  Replaced them with new gradients using uncompressed tga files of the same exact resolution as the original.  Currently replaces:  SM Force Commander and Librarian glow aura FX.


How I modified the SM Structure ground textures:

You can't just upscale the decal because of the way the engine works -- that would only make them physically bigger ingame while retaining the same exact pixel density as the original.  The trick to doing this (as I re-discovered* on my own) is to know that the model files come in two parts: *.whe which purely contains information about animations and stuff like that, and *.whr files which contain the actual model vertex information.  To fully open the models, you'd need to use 3ds Max 8 (because that is the version the relic-created scripts were written for, unless someone would like to convert them to a newer version), but you don't actually need to go down that rabbit hole to upscale a decal.

Instead, you can use a hexeditor to change the decal_texel_size found within the model's .whe file to a proportionally lower number to keep the same texture size ingame.  For this (hopefully it's just the first) texture, the decal_texel_size was 0.09 and the actual texture was 256x256.  So, if you increase the texture size to 1024x1024 (a 4x increase), you'd need to set it to 0.0225 (because 0.09 / 4 = ?) to have it match the original "size" ingame perfectly.  A snag is that you can't set it to exactly 0.0225 because you're limited to 2 decimal places of precision (EDIT: I just figured out how to change the string length in .WHE files and I'll be including that feature in my DoW 1 Texture Tool mod soon).  But you get as close as you can (0.02), and then compensate with the texture's alpha channel.  Also worth noting is that you can't go below 0.02 -- it just won't load the texture when set to 0.01.   The engine can load 2048x2048 textures using a value of 0.02, but you'd probably want to use a 0.01 value decal_texel_size (at least when upscaling a texture that was originally 256x256  to 2048x2048 with an original decal_texel_size of 0.09 or 0.08)-- but, again, you can't go that low.  On the other hand, my testing revealed that a 2048x2048 texture does have a significantly higher pixel density than 1024x1024 ingame -- even though both were using a decal_texel_size value of 0.02.

For this texture (a_grnd_sm_hq.dds @ 256x256), I replaced it with a completely new texture (1024x1024) and changed the decal_texel_size within command_hq.whe (using just a hex editor -- the file is mostly readable plaintext) from 0.09 to 0.02   (within the space marine's folder).

* I wrote "re-discovered" because I imagine this was known and written within the relic forums before they were shut down waaay back.