i think the best way is calc depth and Pos in the one render target and send that to Postprocess and why i say best way because the data we have in render target and postprocess is not so exact for example pos in render target is so real but in postprocess we fit it between 0-1 so and zDepth too it is good if you calc it in render target
for explain level1 and level 2 …
just that be start fog not faster than liner i guess but that is same in far positions also that is fog for fixed position not the current camera position? am i right?
i can disable some mesh from receive fog too
you cant use the gl_FragCoord for that fog