To optimise real-time performance, Unreal Engine employs a number of tricks under the hood to make drawing images as fast as possible. One such trick is to replace objects on screen with lower-resolution versions as they are drawn further away from the camera. Those are called LODs (Levels of Detail) and although they’re great when you’re playing a game, they ruin a cinematic render time and time again.
Reflections aside, take a look at this comparison and shudder at the missing foliage in the distance.


Thankfully there’s an easy way to force Unreal Engine to use the highest LOD at render time by supplying a console variable:
foliage.ForceLOD = 0
We can add this to Movie Render Queue with the Console Variable option like this:

The big advantage of using the above is that UE will auto-complete any of the variables we want to use.
Apparently there’s also a way to add this directly as a sequencer track to have changes take effect as we animate, but I haven’t tried this out yet. Word on the street is we use a Console Vairable track for this, then right-click and use the Properties to add values (sadly without auto completion).
