How to use it
- Drop in DDS files from a game or mod.
- The largest mip level is decoded.
- Download the PNGs, edit them, and convert back with PNG to DDS.
About DDS
DirectDraw Surface arrived with DirectX in the late 1990s and became the standard container for real-time textures. Its key feature is GPU block compression: textures are stored in formats the graphics card can read directly without unpacking, which saves memory and load time. A DDS also carries mipmaps, the progressively smaller copies used for distant surfaces, and can hold cube maps for skies and reflections.
What is supported
- BC1 (DXT1), including 1-bit alpha.
- BC2 (DXT3) and BC3 (DXT5), with alpha.
- Uncompressed 24 and 32-bit DDS, in any channel order.
- Files with the newer DX10 header using those formats.
Newer block formats, BC4 to BC7, are used by many recent games and are not supported yet; you will see a clear message if a file uses one. Only the top mip level and first cube face are converted.
Normal maps and masks
Some textures are data rather than colour: normal maps store surface directions and often look purple-blue; packed masks store different information in each channel. They convert faithfully, but will look strange as pictures. That is expected.
DDS and PNG compared
| DDS | PNG | |
|---|---|---|
| First released | 1999 | 1996 |
| Compression | GPU block compression, or none | Lossless |
| Transparency | Yes | Yes, including soft edges |
| Animation or pages | Mipmaps and cube maps | Only as APNG, rarely used |
| Best for | Real-time textures in games | Screenshots, graphics, text and transparency |
| Support | Game engines and modding tools | Universal |
Questions people ask
Which DDS formats are supported?
BC1/DXT1, BC2/DXT3, BC3/DXT5 and uncompressed 24 and 32-bit, including DX10 headers.
Why does my texture look purple?
It is probably a normal map. The colours encode surface directions, not appearance.
Are mipmaps exported?
Only the largest level, which contains all the detail.