What textures actually cost
Texture memory budget
Optimisation is the last step of the texturing pipeline and the one that decides whether any of the rest ships. Three levers matter: resolution, compression and mipmaps. Two of them save memory; the third spends a little to save a great deal of bandwidth. Move them and watch the budget.
A map stack is albedo, normal, height, occlusion, detail and so on — every one of them is a full texture, which is why a single "material" is rarely one image.
| Format | Bits/texel | Per texture | Whole scene |
|---|
Block compression is decoded in the texture unit, so a compressed texture is not merely smaller in memory — it moves a quarter as many bytes across the bus on every fetch. That bandwidth saving is usually worth more than the memory saving.
| Resolution | Per texture | Whole scene | vs. now |
|---|
Texture cost is quadratic in resolution. Dropping 2048² to 1024² does not save half — it saves three quarters, and on anything the camera never gets close to, nobody can tell.
1 + 1/4 + 1/16 + 1/64 + … times the base texture. That series converges to 4/3 — about 33% more, no matter how large the texture is or how many levels it ends up with. It is a fixed, predictable surcharge, and in exchange you get filtering that neither shimmers nor reads hundreds of texels per pixel. This is as close to a free lunch as real-time graphics offers, which is why mipmaps are effectively mandatory on anything that is ever seen at a distance.