What is a DDS file?

Updated · 6 min read

Short answer: a .dds file is a DirectDraw Surface texture, a Microsoft image format made for games and other DirectX apps. It usually holds a compressed texture (DXT1 to DXT5, now called BC1 to BC7) plus its mipmaps, and it can also hold a cube map. The graphics card reads it directly, so it loads fast.

This page explains what is inside a DDS file, the compression formats in one table, what mipmaps and cube maps are, where DDS files come from, and the free ways to open one or turn it into a PNG.

Try it on your own model

Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.

Open the AI 3D Texturing Studio

What is inside a DDS file

Microsoft describes DDS as the file format Direct3D uses to store textures, either uncompressed or compressed. One file can hold a single texture, a full chain of mipmaps, a cube map, a volume (3D) texture or, in newer versions, a texture array.

Every DDS file starts with the four characters "DDS ", followed by a 124-byte header. The header says how big the image is, how many mip levels it has and which pixel format it uses. Newer files add a second "DX10" header for formats such as BC7, HDR and texture arrays.

Some older tools cannot read the newer "DX10" header. If a DDS opens in one program but not another, this is often why. Saving as plain BC1 or BC3 (DXT1 or DXT5) is the most widely readable choice.

Why games use DDS instead of PNG

A PNG is small on disk, but the graphics card cannot use it as it is: it must be unpacked into raw pixels first, which uses a lot of video memory. A block-compressed DDS stays compressed in video memory. Microsoft says this saves up to 75% of memory compared with 32-bit colour, and the hardware decodes it with no performance penalty.

The catch is that block compression is lossy. It works on 4×4 pixel blocks, so the width and height must be multiples of 4, and fine detail such as text can look blocky. Microsoft does not recommend it for user interface images and text.

DDS compression formats (DXT and BC) in one table

The old DXT names and the newer BC names describe the same family. This table is based on Microsoft's block compression guide. "Block" means one 4×4 group of pixels.

FormatOld nameWhat it storesBytes per 4×4 blockTypical use
BC1DXT1RGB colour, optional 1-bit alpha8Colour maps with no transparency
BC2DXT2 / DXT3RGB + 4-bit alpha16Alpha with sharp steps
BC3DXT4 / DXT5RGB + 8-bit smooth alpha16Colour maps with transparency
BC4ATI1One channel8Roughness, height or other grey maps
BC5ATI2Two channels16Normal maps (red and green)
BC6HnoneHDR colour (half float)16Skies and HDR light maps
BC7noneRGB with optional alpha, higher quality16Best-looking colour maps
UncompressedA8R8G8B8 and othersRaw pixelsnot block basedUI, icons, lossless storage

BC4 and BC5 suit data that runs from 0 to 1 or from -1 to 1, which is why BC5 is a common choice for normal maps. If you want to know what those maps are, see PBR maps explained and what is a normal map. BC6H and BC7 need the newer DX10 header and Direct3D 11 class hardware.

Mipmaps and cube maps

Mipmaps

A mipmap chain is the same texture saved again and again at half the size: for example 256, then 128, then 64, and so on down to 1×1 pixel. The renderer uses the big version up close and the small versions far away. This stops distant surfaces from shimmering and makes them faster to draw, at the cost of a bit more memory.

A DDS file can carry all of these levels inside it, so the engine does not have to make them at load time. The Beyond Skyrim modding wiki says to always generate mipmaps for game textures, except UI and sky textures, because missing mipmaps can cause frame-rate drops.

Cube maps

A cube map is six square images, one for each side of a cube. Games use it for skies and reflections. In a DDS file the six faces are stored in a fixed order (+X, -X, +Y, -Y, +Z, -Z), each followed by its own mipmaps, and all six must be the same size.

Where you find DDS files

  • PC games. Many DirectX games ship their textures as DDS. The Beyond Skyrim wiki says almost all textures used by Skyrim are DDS, so texture mods for that game are DDS too.
  • Game mods. Modding guides tell you which BC format to save in. For Skyrim the wiki suggests BC1 without alpha, BC3 for alpha in the original edition, and BC7 for Special Edition.
  • Engines and 3D files. Some pipelines keep DDS next to a model. glTF has a draft Microsoft extension for DDS textures, but core glTF and GLB files use PNG or JPEG, and viewers fall back to those.

How to open or convert a DDS file

Web browsers cannot show a DDS file, and many image viewers cannot either. These free tools can, each checked on its own site:

ToolPlatformOpen DDSSave DDSNotes
GIMPWindows, macOS, LinuxYesYesExport offers BC1 to BC7, mipmaps and a vertical flip option
Paint.NETWindowsYesYesDDS plugin bundled since 4.2.2; opens only the main image of a mipmapped file
texconv (Microsoft DirectXTex)Windows command lineYesYesMIT licence; batch convert to PNG or to any BC format
NVIDIA Texture Tools ExporterWindows 10/11, NVIDIA GPUYesYesStandalone app and Photoshop plugin; needs a CUDA GPU

Convert DDS to PNG with texconv

  1. Download texconv from the DirectXTex releases page on GitHub.
  2. Open a command prompt in the folder with your file.
  3. Run texconv -ft png input.dds. A PNG with the same name appears next to it.

Convert PNG to DDS

To go the other way, texconv -f BC7_UNORM -m 0 input.png makes a BC7 DDS with a full mipmap chain. In GIMP, use File > Export As, pick .dds, then choose the compression and "Generate mipmaps".

If a converted texture shows up upside down in your game, export again with GIMP's "Flip image vertically" option. GIMP's manual notes that some engines need it.

Make textures in the browser, then convert to DDS

Our AI 3D texturing studio paints a texture onto your model from a text prompt and gives you a textured GLB plus the texture as a PNG. For a game that wants DDS, convert that PNG with one of the tools above. Pick BC7 or BC1 for colour and BC5 for a normal map.

Need a normal map first? The free normal map generator makes one from any image in your browser. A DDS viewer and a DDS to PNG converter that run in the browser are also being built for this site.

Texture a model with AI

Upload a GLB, OBJ, FBX, STL or PLY, describe the look, and download a textured GLB plus the texture PNG.

Open the studio

Questions

What does DDS stand for?

DDS stands for DirectDraw Surface. It is a Microsoft texture format used by Direct3D, and every file starts with the four characters "DDS " followed by a header.

Is a DDS file an image?

Yes. It is an image made for graphics cards. It usually holds a compressed texture plus its mipmaps, and it can also hold a cube map or a volume texture.

How do I open a DDS file on Windows?

Use a free editor that reads DDS, such as GIMP or Paint.NET (its DDS plugin is bundled since version 4.2.2). Microsoft's texconv tool can also turn it into a PNG from the command line.

Is DDS better than PNG?

For games, a block-compressed DDS uses much less video memory and loads faster. For editing and sharing, PNG is better because it is lossless and opens everywhere. Many artists keep a PNG master and export a DDS for the game.

Which DDS format should I use?

BC1 (DXT1) for colour without transparency, BC3 (DXT5) for colour with transparency, BC5 for normal maps, and BC7 when you want the best quality and the game supports it. Check your game or engine's modding guide first.

Ready to texture something?

Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.

Start texturing

Step-by-step tutorials

Keep reading

Sources

Checked 2026-10-18. Other tools change their features and prices often, so check their own pages too.