How does storing more copies of the same texture save ram?
Of course one can drop the higher resolution textures, but AFAIK that technique came long after mipmapping, as it requires high cpu-to-gpu bandwidth, which wasn't there in the earlier days.
Right. Mipmapping is different than simply using lower levels of detail textures. Mipmapping is when you store the full level of detail plus progressively lower levels of detail (always adding up to 33% more data) so that the correct LOD texel can be looked up depending on the required rendering detail. You're using more memory for higher quality (and sometimes faster) rendering.
Some implementations of mipmapping store a single medium-resolution image and either sample fewer pixels or duplicate neighboring pixels when drawing. You don't need extra memory for that. Literally just mapping a subset of the pixels from the texture stored in memory.
When enough pixel duplication occurs you may want to enqueue a request for a higher resolution texture to be loaded into memory and let the resource pool decide. You can see this in effect in some older games where you're able to "outrun the horizon/frustrum" so to speak or when too many objects spawn and the level of detail is terrible for a while until the game catches up. Otherwise this is just a most-recently-used cache. Mipmapped textures can either be many prescaled static copies on disk or precomputed from the single full resolution asset on disk while loading a level.
kvdveer|2 years ago
Of course one can drop the higher resolution textures, but AFAIK that technique came long after mipmapping, as it requires high cpu-to-gpu bandwidth, which wasn't there in the earlier days.
ryandrake|2 years ago
sublinear|2 years ago
When enough pixel duplication occurs you may want to enqueue a request for a higher resolution texture to be loaded into memory and let the resource pool decide. You can see this in effect in some older games where you're able to "outrun the horizon/frustrum" so to speak or when too many objects spawn and the level of detail is terrible for a while until the game catches up. Otherwise this is just a most-recently-used cache. Mipmapped textures can either be many prescaled static copies on disk or precomputed from the single full resolution asset on disk while loading a level.
unknown|2 years ago
[deleted]