Every import dialog asks; this page answers. What each format is, what it costs, and which map goes in which - for desktop (BC) and mobile (ASTC).
| Format | aka | Bits/px | Channels | Use it for | Watch out |
|---|---|---|---|---|---|
| BC1 | DXT1 | 4 | RGB (+1-bit A) | Opaque color, the default workhorse | Green channel slightly higher precision; blocky on smooth gradients |
| BC3 | DXT5 | 8 | RGBA | Color with real alpha (decals, foliage cards) | Alpha is smooth but color = BC1 quality |
| BC4 | - | 4 | Single channel | Grayscale data: height, masks, noise, roughness alone | The most underused format in games - half the cost of shoving gray into BC1 |
| BC5 | - | 8 | Two channels | Normal maps (X,Y; Z reconstructed in shader) | Engines set this automatically when you mark "normal map" - that's what the checkbox does |
| BC6H | - | 8 | RGB, HDR | HDRIs, skyboxes, emissive HDR | No alpha; encode times are long |
| BC7 | - | 8 | RGB(A) | Hero color textures where BC1 artifacts show | 2x BC1's memory - spend it on faces and UI, not gravel |
| One format, variable block size = quality dial: 4x4 (8 bpp, best) -> 6x6 (3.6, the usual default) -> 8x8 (2, distant/unimportant). |
| Rule of thumb: UI and faces 4x4/5x5 - standard materials 6x6 - lightmaps and far scenery 8x8. |
| Older Android floor: ETC2 (8 bpp RGBA). iOS pre-A8 legacy PVRTC - hopefully not your problem. |
| Map | sRGB |
|---|---|
| Albedo / base color | ON |
| Normal map | OFF |
| Roughness / metallic / AO / masks / ORM | OFF |
| Emissive color | ON (it's color) |
| Height / displacement / noise | OFF |
| The rule in one breath: color = sRGB on, numbers = off. Symptoms of getting it wrong: the debugging catalogue, row one. |
| Map | Format |
|---|---|
| Albedo (opaque) | BC1 - sRGB |
| Albedo + alpha | BC3 (or BC7 if hero) - sRGB |
| Normal | BC5 - linear |
| Packed ORM (packer) | BC1 - linear |
| Single mask/height | BC4 - linear |
| HDR sky/emissive | BC6H - linear |
| UI | BC7, or uncompressed if it must be pixel-true |
| Uncompressed RGBA8 = 32 bits/px -> a 4K texture = 64 MB before mips (+33% with). |
| Same 4K in BC1 = 8 MB. In BC7/BC3 = 16 MB. The dropdown is an 8x memory decision. |
Quick math: width x height x bpp / 8 x 1.33 (mips) = bytes on the GPU. |
| Mips are non-negotiable for 3D - no mips = shimmer + worse cache performance, not "sharper." |
| Block formats need multiple-of-4 dimensions; power-of-two sizes get you that plus clean mips. The UV tool and noise tool only emit POT for this reason. |
| BC compression happens at import/cook - your source PNG/TGA stays lossless in version control; never commit pre-compressed DDS unless you enjoy locked-in artifacts. |
| Fine text and crisp gradients are BC1's worst case - that's what BC7 (or uncompressed UI) is for. |
| Don't double-compress: JPEG source -> BC = both artifact families at once. Author in PNG/TGA/EXR. |
Deeper dives: Textures & Streaming for the engine-side budget story, and the Channel Packer to put three maps in one BC1's worth of memory right now.