Texture formats: when to use BC7, BC5 and BC3

Picking the wrong compression costs you VRAM, quality, or both. The rules are simple once you know what each map stores.

XIV materials use several maps, and each one wants a different compression format. Getting this right is the cheapest quality win available.

The formats

BC7 — high quality colour with a full alpha channel. Largest of the three, and the right default for diffuse maps where banding would be visible.

BC5 — two channels only, stored at high precision. This is what normal maps want: X and Y are stored, Z is reconstructed in the shader. Using BC7 for a normal map wastes half the file on a channel that gets thrown away.

BC3 — older colour-plus-alpha format. Cheaper than BC7 and noticeably worse on gradients. Reasonable for masks and small decorative textures where nobody will look closely.

Quick reference

Map Format Why
Diffuse BC7 Gradients and skin tones band badly under BC3
Normal BC5 Two-channel storage at higher precision
Mask / multi BC7 Channels are read independently; artefacts compound
Simple decals BC3 Small enough that quality loss does not show

Resolution

Bigger is not better past the point where the texture fills the screen. A face texture at 4K is defensible. A boot buckle at 4K costs the same VRAM and nobody will ever see the difference.

A practical ladder:

  • Face and body: 2048 or 4096
  • Clothing: 2048
  • Small accessories: 1024
  • Decals and masks: 512

Mipmaps

Always generate them. A texture without mipmaps shimmers violently at distance and costs more to sample, because the GPU reads full-resolution texels for a handful of pixels on screen.

TexTools generates mipmaps on import by default. If you are writing DDS files by hand, do not skip the flag.