Change texture resolution at runtime

I am trying to have an “options” section for my game that allows users to drop the quality of textures through the menu system (for performance reasons) but cannot find any way to achieve this.

I know there is a scalability option for textures but this won’t drop the resolution of the textures and I have tried using LODBias via console command in game but have found that although this DOES in fact change the texture quality, the larger texture mips are still loaded into memory.

I am developing a SciFi thriller and want to enable people to scale down the textures in the options menu to suite their hardware, I have most “large” textures at 8K and using Nanite but I am running a 3090RTX and although looks amazing I know this will have to be scaled down on some machines.

Any advice or has anyone performed the same in UE4/UE5… GTA5 can do it (and I thnk Rust too) so I don’t think it is too much of a technical challenge, I just cannot find a way to do it at runtime / packaged game.

PS. Purpose is to remove / downscale the high resolution textures to save VRAM should the player need to.

1 Like

17 days and no one has any idea if this is possible in UE4/5…

anyone at all ever done this and can offer some advice?

You can place all textures inside the project, create a datatable which you can place a reference to each texture added with the material and the parameter name to be set against each target performance at your project. When user changes the target performance you go over that datatable selecting all rows with the target performance and you start changing the texture in question with a procedure using all the data you already have at the datatable. Instead of a datatable you could even use a real database. It is doable that easy even in blueprints.