Uncompressed textures quickly eat up VRAM, drop FPS, and break scene smoothness, so we strictly control their compression for stable performance.
We pick the right format for each job: masks - single channel with minimal detail loss; normals - efficient two-channel compression; color textures - a balance of quality and speed.
We enable virtual textures with prioritized streaming: nearby objects get textures first, distant ones stream on demand and only their visible parts. We use mip levels - at distance the texture detail is reduced without changing geometry, which saves memory and speeds up rendering.
Unreal profilers give us snapshots of memory usage - which textures/materials and objects are heavy. Based on this data we adjust scenes, keeping the balance between visual richness and smooth gameplay.