Format Basics

What Is DDS? A Complete Guide to the DirectDraw Surface Texture Format

You downloaded a mod for your favourite game, and inside there are cryptic .dds files that no program will open. Let's unpack why this format was built for graphics cards rather than people, how it squeezes textures so hard, and what a regular user should actually do with it.

Close-up of a modern graphics card — the GPU is what works with DDS textures
DDS speaks the language of the graphics card, not the CPU. Photo: Pexels

What DDS is in plain English

DDS (DirectDraw Surface) is a container for textures, invented by Microsoft specifically for 3D graphics. If PNG and JPG exist so that a human can see a picture on screen, DDS exists so that a graphics card can read a picture as fast as physically possible while a game is running.

That is the whole idea. An ordinary image is first decoded by the CPU into memory and only then handed to the GPU for drawing. A DDS texture is already stored in a form the graphics processor understands directly — no intermediate unpacking. That saves video memory and time, and in games every millisecond counts.

In short

DDS is a "ready meal for the GPU." It is fast and compact inside a game, but nearly useless outside a 3D engine: to view or edit the texture you usually convert it to PNG.

Where the format came from

DDS arrived with DirectX 7.0 in September 1999 as part of the DirectDraw subsystem — hence the name. Since then it has evolved alongside DirectX and graphics hardware:

  • DirectX 8 (2000) — added volume (3D) textures and cube environment maps, used for reflections and skyboxes.
  • DirectX 10 (2006) — introduced the BC4 and BC5 compression types (perfect for normal maps) and the extended DX10 header for texture arrays.
  • DirectX 11 (2009) — added BC6H for HDR textures with extended brightness range and BC7 for maximum color quality.

Over a quarter of a century DDS became the unofficial standard for PC-game textures. That is exactly why, when you dig into the files of almost any game — from Skyrim to modern AAA titles — you will almost certainly find .dds.

Abstract 3D render — textures form the surface of objects in graphics
Any surface in 3D is geometry plus a texture stretched over it — most often in DDS. Photo: Pexels

How a DDS file looks inside

Structurally, DDS is a simple, logical container. The file starts with the signature DDS  (four bytes), followed by a 124-byte header. The header records everything the GPU needs: texture dimensions, compression type, number of mipmap levels, whether there is an alpha channel, and cubemap/volume flags.

After that comes the pixel data itself, already in the format the GPU expects. There is no elaborate structure like PNG's chunks and checksums: DDS is deliberately straightforward, because its job is to be read by hardware instantly.

Full name
DirectDraw Surface
Extension
.dds
Signature
DDS (0x20534444)
Developer
Microsoft
Transparency
Yes (alpha)
Animation
No

BC and DXT compression: 4×4 block magic

The most interesting part of DDS is block compression (Block Compression, BCn; formerly known as S3TC or DXT). The principle: the image is split into 4×4-pixel squares, and each block is encoded separately using a pair of reference colors and a compact set of indices. The graphics card decompresses these blocks on the fly, right during rendering.

Different BC variants are tuned for different jobs:

FormatOld nameBest forAlpha
BC1DXT1Opaque textures, smallest size (4 bits/pixel)1 bit
BC3DXT5Textures with smooth transparencyYes
BC4 / BC5Height and normal maps
BC6HHDR textures (extended range)
BC7Maximum color qualityYes

About quality

BC1–BC3 compression is lossy. It guarantees a small fixed size but coarsens color and leaves artifacts on gradients. So when you convert DDS to PNG, those artifacts are already "baked in" — restoring the original quality is impossible.

Mipmaps: why distant textures don't shimmer

Another DDS superpower is mipmaps. These are pre-scaled copies of the same texture: full size, then half, a quarter, an eighth, and so on down to 1×1 pixel. They are all stored right inside the file.

Why? When an object is far from the camera, the GPU has no reason to read a 4096×4096 texture — it grabs a smaller version. This removes the unpleasant "shimmering" of distant surfaces and noticeably speeds up rendering. In essence, mipmaps trade a little disk space for a lot of in-game performance.

Macro shot of a graphics card — the GPU decodes DDS texture blocks in real time
DDS block compression is decoded in hardware — that is the secret of its speed. Photo: Pexels
4×4compression block size
≈6:1typical saving (BC1)
1999year introduced (DirectX 7)

Where DDS is used

DDS is a "behind-the-scenes" format: end users rarely see it, yet it is almost everywhere real-time 3D graphics live.

  • Games and game engines. Unreal Engine, Unity, CryEngine and Source all work with DDS. It is the primary format for character, environment and UI textures.
  • Modding. The Skyrim, Fallout, GTA and The Sims communities practically live in DDS: retextures and HD packs almost always ship in it.
  • 3D visualization and CAD. Anywhere you need fast material rendering on the GPU.

How to open and convert DDS

Because DDS is built for the graphics card, double-clicking it usually does nothing. The fastest path for most tasks is to convert DDS to PNG: PNG is understood by every program and browser, supports transparency and uses lossless compression.

1

Upload the file

Drag your .dds into an online converter — nothing to install.

2

Choose PNG

PNG-32 keeps the alpha channel from DDS if there is one.

3

Download the result

Open and edit the texture in Photoshop, GIMP or Paint.NET.

Open your DDS texture right now

The free FormatZ converter turns a game texture into PNG in a couple of seconds — right in your browser, with no install and no sign-up.

Convert DDS to PNG

If you are into modding and need to put an edited image back into the game, the reverse conversion comes in handy — PNG to DDS. And the full list of supported conversions is always on the all formats page.

DDS is not a "bad PNG." It is a different tool for a different job: speaking to the graphics card in its own language.
PNG and JPG are made for people and browsers: the CPU decodes them. DDS is made for the graphics card: data is stored in blocks the GPU reads directly without unpacking. That makes DDS fast in games but almost useless outside a 3D engine.
Usually lossy: BC1–BC3 (DXT) block compression coarsens color in exchange for a fixed size. BC7 produces far fewer artifacts, and uncompressed DDS stores pixels losslessly but takes a lot of space.
Mipmaps are pre-scaled copies of a texture (1/2, 1/4, 1/8, etc.). The GPU picks the right size based on distance to the object, which removes shimmering on far surfaces and speeds up rendering.
The easiest way is to convert DDS to PNG — for example with the FormatZ online converter. After that the texture opens and edits in any editor: Photoshop, GIMP, Paint.NET or even a default image viewer.
Yes. After editing, the PNG is converted back to DDS with the right compression type (e.g. BC3/DXT5 for textures with transparency). This is the standard workflow in game modding — see the PNG → DDS converter.