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 StudioWhat 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.
| Format | Old name | What it stores | Bytes per 4×4 block | Typical use |
|---|---|---|---|---|
| BC1 | DXT1 | RGB colour, optional 1-bit alpha | 8 | Colour maps with no transparency |
| BC2 | DXT2 / DXT3 | RGB + 4-bit alpha | 16 | Alpha with sharp steps |
| BC3 | DXT4 / DXT5 | RGB + 8-bit smooth alpha | 16 | Colour maps with transparency |
| BC4 | ATI1 | One channel | 8 | Roughness, height or other grey maps |
| BC5 | ATI2 | Two channels | 16 | Normal maps (red and green) |
| BC6H | none | HDR colour (half float) | 16 | Skies and HDR light maps |
| BC7 | none | RGB with optional alpha, higher quality | 16 | Best-looking colour maps |
| Uncompressed | A8R8G8B8 and others | Raw pixels | not block based | UI, 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:
| Tool | Platform | Open DDS | Save DDS | Notes |
|---|---|---|---|---|
| GIMP | Windows, macOS, Linux | Yes | Yes | Export offers BC1 to BC7, mipmaps and a vertical flip option |
| Paint.NET | Windows | Yes | Yes | DDS plugin bundled since 4.2.2; opens only the main image of a mipmapped file |
| texconv (Microsoft DirectXTex) | Windows command line | Yes | Yes | MIT licence; batch convert to PNG or to any BC format |
| NVIDIA Texture Tools Exporter | Windows 10/11, NVIDIA GPU | Yes | Yes | Standalone app and Photoshop plugin; needs a CUDA GPU |
Convert DDS to PNG with texconv
- Download texconv from the DirectXTex releases page on GitHub.
- Open a command prompt in the folder with your file.
- 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 studioQuestions
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 texturingStep-by-step tutorials
Keep reading
PBR maps explained: albedo, normal, roughness, metallic and AO
PBR maps explained for beginners: what albedo, normal, roughness, metallic and ambient occlusion maps do, how a GLB stores them, and how AI textures fit in.
What is a normal map?
What a normal map is, how its RGB channels store surface direction, why it looks blue, tangent vs object space, OpenGL vs DirectX, and bump vs displacement.
What is a GLB file? (and how it differs from glTF)
A GLB file is a 3D model in glTF 2.0’s binary format. What a GLB holds, how the file is built, GLB vs glTF compared in a table, and how to open or edit a GLB.
Which 3D model format keeps textures? GLB, OBJ, FBX, STL and 3MF compared
Which 3D model format keeps textures? How GLB, GLTF, OBJ + MTL, FBX, STL, PLY and 3MF store colour and texture maps, GLB vs OBJ, GLB vs FBX, and which to pick.
Sources
Checked 2026-10-18. Other tools change their features and prices often, so check their own pages too.
- Microsoft Learn: Programming Guide for DDS
- Microsoft Learn: Texture block compression in Direct3D 11
- Microsoft Learn: Block compression (Direct3D 10)
- Microsoft Learn: DDS file layout for cubic environment maps
- Microsoft Learn: Texture filtering with mipmaps
- DirectXTex wiki: Texconv
- GIMP 3.2 manual: DDS export
- Paint.NET DDS FileType Plus plugin
- NVIDIA Texture Tools Exporter
- Beyond Skyrim wiki: DDS
- Khronos glTF: MSFT_texture_dds extension