DDS Images & Windows Explorer “Unknown File Type”
There’s a problem when trying to view certain types of DDS textures when working with a number of games engine, the following discusses the reason for this and who to ‘fix’ it.
So far the following problems only appears to crop up when editing or creating content for games powered by the Doom 3 engine technology.
Compressonator
During the process of producing the game id software made use of a tool from ATI called the Compressonator which had a number of ‘filters’ that allowed the compression of images into the DDS (Direct Draw Surface) format of Microsoft’s DirectX API. In using this tool they inadvertently introduced a ‘problem’, or rather, it’s a problem when you don’t know what’s going on.
Image Formats
As discussed in this tutorial – "creating DDS textures using ATI’s Compressonator", there are two main types of images used in the Doom 3 powered games;
- TGA
- DDS
TGA images are industry standard uncompressed images, mainly used when games are running in ‘Ultra mode’, the highest setting you can go in to which only use TGA images. DDS images get pulled in for all the other quality settings; ‘low’, ‘medium’ and ‘high’. The problem is that the DDS images use a different compression filter depending on what their eventual role is;
- DXT1 – diffuse, specular and height maps, no alpha channels
- DXT3 – diffuse, specular and height map with alpha channels
- DXT5 – exclusively for normal maps, with or without alpha channels
It’s these normal maps that are causing the problem because they use a proprietary format that’s only available in one of the early builds of ATI’s Compressonator tool, this means it’s not an ‘industry standard’ format like the other DDS filters.
Viewing DXT5 DDS Images
As shown in the images below, the normal maps are the images shown by the ‘x’ thumbnail; contrary to popular thought, they are not an "unknown file format"; as mentioned above, they’re proprietary. If you get the ‘unknown file type’ message pop up when trying to view them in Photoshop or other image editing application it’s purely because that program doesn’t have the appropriate filter to read the file and thus open it.
When viewing files in Windows Explorer you’ll most likely see the following; the images that you can see in the thumbnail view below use the standard DXT1 and DXT3 compression filters; the ones you can’t see use DXT5 – they’re all normal maps.
DDS game textures as displayed in Windows Explorer using a DDS extension plug in. The red ‘x’ images denote DDS textures the thumbnail plug in can’t read.
Currently the only way to correctly view these ‘no shows’ is to open them into ATI’s Compressonator tool from where the images can be saved back out to TGA for editing or further viewing where necessary.
DDS texture as ‘correctly’ displayed in ATI’s ‘Compressonator’ DirectX compression tool, showing the original image on the left, the compressed version on the right and the results of filtering in the centre, i.e. what’s been removed from the original to produce the DDS compressed image on the right
Conclusion
Make sure to check the details of the DDS images used by the game you’re editing, it may require some elbow grease to manually test images formats but unless a developer clearly states "we used ‘x’ format" it’s the only recourse modders have. If you’re having problems loading in custom DDS textures make sure you’ve;
- Placed them in the right location
- Saved them using the correct DDS filter
- Using the correct file paths in the material/shader files
- Made sure that you’re referencing the shaders correctly on models
If you still have problem after that and you’re a member of a mod team, borrow a couple of assets and try loading them into you set up. Conversely, send them your files to see if they can load them, if they can but you can’t then you at least know there is a problem with your modding set up rather than with the images.