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.