Zum Inhalt springen

For creators

Textures 101 for modders: DDS, block compression, mipmaps, colour space, and why a mod ends up at 900 MB

TreeFX for Nordschleife – 3D Trees Enhancement
Pictured: TreeFX for Nordschleife – 3D Trees Enhancement, from the ModsDrop library.

Ask why a mod is 900 MB and the answer is almost always textures. Models and physics are megabytes; images are hundreds of them. Understanding how game textures are stored, compressed and scaled is the single most useful technical skill for a mod author who wants files people can actually download and run. Here is the practical version.

DDS and block compression

Games rarely use PNG or JPEG at runtime. They use DDS files holding block-compressed textures, a family of formats the graphics card can read directly without unpacking, so they stay compressed in video memory too. The formats you will meet:

Which formats a game expects for which kind of map varies; the most reliable guide is to open the game’s own textures for a similar asset and match them.

The arithmetic of size

An uncompressed 4096×4096 image with alpha is 64 MB. As BC7 or BC3 it is 16 MB; as BC1, 8 MB. Mipmaps, the smaller pre-scaled copies the card uses at a distance, add one third on top. And every step down in resolution divides the size by four:

Resolution BC7 / BC3 with mipmaps BC1 with mipmaps
4096×4096 about 21 MB about 11 MB
2048×2048 about 5.3 MB about 2.7 MB
1024×1024 about 1.3 MB about 0.7 MB

A car with twelve 4K maps (body colour, normal, roughness and so on for exterior, interior, wheels and glass) is 200 MB of textures before anything else. The same car at 2K is 50 MB, and at normal viewing distances on a 1080p screen nobody can tell.

Mipmaps are not optional

A texture without mipmaps shimmers and sparkles at a distance and costs more to render, because the card samples the full-size image for a car a hundred metres away. Always generate a full mip chain when you export. Most tools do this by default; check that yours does.

Colour space

Colour maps are usually stored as sRGB; data maps (normals, roughness, metalness, masks) as linear. Getting this wrong makes paint look washed out or too dark, or makes normal maps look subtly wrong under light. Again, the game’s own files show what it expects.

Where the resolution should go

Recompression costs quality

Block compression is lossy. Decompressing a BC texture and compressing it again, for example to change its size, adds artefacts each time. Keep your source images (PNG, TGA or your editor’s own format) and export every version from them. If all you have is the DDS, work from it once and keep the result.

Tools

Microsoft’s free texconv command-line tool converts and resizes in bulk; NVIDIA’s free Texture Tools Exporter has a visual preview; Paint.NET saves BC7 directly; GIMP opens and saves DDS. The free tools guide lists the rest, and making a lite version puts all of this into a workflow.

Why it matters beyond file size

Textures live in video memory while a scene is on screen. An 8 GB card fills quickly with a few 4K-everything cars and a detailed map, and the result is stutter, which players blame on your mod. Sensible textures make a mod that downloads faster, loads faster, runs smoother and gets finished more often, and on ModsDrop finished downloads are what uploaders are paid on.

← All news