Color banding in very large scene

I’m trying to use fog effects (AtmosphericFog, ExponentialHeightFog and screen-distance PostProcessVolume) in a very large level, but I’m getting pretty heavy color banding with all 3 effects. The player will be playing in a floating area with a gigantic corridor around him, out of his reach. I’m trying to make a eerie, foggy, very long and tall corridor with a bright end very far away. I did a series of test and so far here are my conclusions.

  1. The banding gets much worse the wider the end of the corridor is.
  2. The banding gets worse as the distance he can see increases.
  3. The colors definitely exist but U4 isn’t using them, either because it would be too costly or due to a bug.

Narrow corridor end.

Wide corridor end.

What I’m trying to get.

This is the whole thing from the outside scaled down. The whole corridor is about 10km long normally.

Is there a setting that would increase the quality of the gradient ? While I understand that the fog effects might not be meant for such extreme distance, I find it weird that the engine simply doesn’t use the colors that it would need for a smooth gradient.

I think the banding is caused by floating point precision, try applying the effect in a post process material instead a giant mesh. You could do something like this using the absolute of the dot product of the camera vector and the direction your corridor end is in
in code:
abs(dot(cameravector, corridorDirection)