Create Fog Plugin by Global Shader Implementation?

Hello everyone

I would like to implement my own fog Plugin like Exponential Height Fog (I don’t want to edit Exponential Height Fog or use Particle System). What i have decided is to apply 3d noise to my fog to make it more realistic.

Somethings look like this picture and also look like real volumetric fog

As I know, there are 2 main type shader in ue4. that’s fshader for mesh and fglobal shader right? So I think fglobal shader is right way then I have searched in directory of EpicGames(C:\Program Files (x86)\Epic Games\4.13\Engine\Source\Runtime\Renderer\Private) to find an example and i found FogRendering.cpp file like this picture

FogRendering.cpp

DeferredShadingRenderer.cpp

The “RenderFog” Function are used by “DeferredShadingRenderer.cpp” like this picture

But there are so many global shader process before “Renderfog” function such as render light, light shaft and so on.
So my question is

  1. Should I concern about the order of shaders? and should i have to modify those files? (I think that If I change or modify the original files then I can’t create the plugin? Am I right?)
  2. How can I create a new actor that’s similar to ExponentialHeightFog and use it?
    If you have any idea. please help me.