Yeah, a GTX 970 is a pretty amazing graphics card. Getting that kind of power on mobile might not happen in my lifetime. I wouldn’t go so far as to say mobile can’t handle something better than Quake, but expecting Kite-Demo-esque graphics on it is insane. This fog is figured out by the depth, and the start distance serves as your offset. If you want to start the fog sooner, set the start distance to a negative value. Yeah, it will screw up a bit with your exponent, but like you said, it performs very well. This is definitely the best performance you can get with fog out of UE4.
I would not suggest removing the exponent and multiplying the fog by a constant. All that feeds into a clamp node anyways: all you’re doing is changing the depth distance, which you can easily change by just changing the depth itself. And I’m pretty sure decimals multiply with the same performance as integers, multiplication is basic arithmetic. It’s just exponents that suffer from some complications. The purpose of the exponent is to accumulate the fog faster as it builds in the distance, giving you clearer viewing up close while emphasizing the depth in the background.
Do you know how to set up a material parameter collection? I seriously suggest doing that, plugging the MPC values into the fog function. Then in your world, fiddle with the values in the MPC until you get the fog looking just right. If change constants and rebuild entire shaders just to see how it looks, you’re going to be spending all day trying to make the material look decent instead of setting up parameters and spending just a few seconds, minutes at the most, to get the values just right. You can manage multiple materials at once that way.