Okay, show of hands - who thinks visibility is a simple issue?
It most assuredly is not. Simple example - you have a reported visibility of 16 km at your position. Why do you see the Sun - it's a few hundred million kilometers away after all, so if you could only see 16 km, you shouldn't see it.
Answer: Because the reported visibility refers to a horizontal ray, if the ray is vertical, the reported value doesn't really mean that much.
So we can see that
visibility really depends on view direction.
Now, imagine you're outside a small thunderstorm - you see the rain pouring down, and you know that there's an airfield with a weather station right underneath, but you can't see it. You can readily see 50 km beyond the thunderstorm though, and you're only some eight km away from the airfield. The weather station at the airfield though reports a visibility of 100 m. So - should the visibility at your position be 100 m?
Answer: Of course not, because even looking horizontally, the visibility can be strongly different dependent on where you are.
So we can see that
visibility really depends also strongly on position.
In fact, combining the two above, it internally makes no sense to characterize a scene by 'visibility' - I don't know what that means.
In reality, there is a density distribution rho (x,y,z,t) of fog in the scene, and view rays are attenuated by exp(-I) where I is the integral along the view ray
\int rho(x,y,z) sigma(lambda) dr
(with dr being a line element along the ray and sigma the wavelength dependent absorption cross section). In a fairly constant rho environment, we can simplify the integral as rho * sigma * L and we call 'visibility' the value of L for which exp(-I) assumes a value smaller than some threshold (physicists would use 1/e, but meteorologists rather use something like 0.1 in practice, though it's most assuredly not well-defined).
If you know anything about integral equations, you might deduce that a single value of visibility at one location tells you close to nothing about rho(x,y,z) (in the above example in the thunderstorm, the 100 m don't tell you anything of the value at your location, nor where in altitude it changes because the rain stops, nor anything else). So visibility needs to be described by a more complicated model (the ALS one is described
here.
In FG, we have the additional complication that visibility affects number of scene vertices loaded, so there are several measures of artificially restricting how large it can become for the scene. Note that vertically upward you almost always have trillions of kilometers visibility because you can see stars at night.
So:
* METAR sets the horizontal visibility at the weather station, i.e. the assumed density of haze on the ground.
* whatever the weather system sets for /environment/visibility-m is treated as the horizontal visibility at your current position AND as restriction for how far out tiles are loaded
These act in conjunction, i.e. if you're *not* looking horizontally, you see a mixture of the two dependent on view angle and altitude of the vertex you're observing. Thus 50 km visibility at your altitude entitle you to see something at your altitude that is 50 km away, but say nothing about whether you can see something that is lower than your altitude - you may or may not be able to see it, the value doesn't say.
* LOD bare sets a second restriction how far terrain is loaded - if you're find with seeing a hard terrain edge, you can have visibility beyond LOD bare and see nearby terrain less hazy
* the far plane clipping (forgot the property name) sets where the renderer culls the scene, so even if you extend everything else beyond that value, it won't be rendered (note that the actual position of sun and stars in FG coordinates is *not* the real position but *very much closer*)
* since METAR tends to not report values above 10 NM, METAR users typically get rather small ground visibilities (which aren't always real). The weather system conservatively tries to work around that and based on other weather parameters opens up a bit further, but this may not fit in every instance. In such cases, changing ground-haze-factor to a value >1 is a good procedure (we can't do this automatically because the real visibility on the ground for a reported 10 NM may be 10 NM just as well as 60 NM and we don't know this).
* since METAR says nothing at all about aloft visibility, AW tries to understand the weather situation and opens up aloft visibility automatically based on that.
Thus: Feeding AW a reported 100 NM visibility via METAR will give you clear skies all around. Feeding AW a reported 10 NM visibility will give you gradually clear skies at high altitude but haze at the ground - changing ground-haze-factor will clear the ground up to matching your value at current altitude (ground visibility inside the renderer may never exceed visibility to avoid all sorts of bugs - you can set it higher but it won't do anything). In patchy weather situation (rainfall, T-storms), local visibility may always be worse than average visibility if you happen to be inside the patch - this will disregard METAR values). That is to say, if the METAR reports 10 km ground visibility and T0-storms and you happen to spawn inside the storm rain zone, you'll get 400 m and the 10 km only if you leave the storm or wait for it to pass.
* the air pollution slider in addition allows to dial in some amount of (bluish) dry haze - since that has visually different fading properties, it might alter your perception of visibility (details fade in bluish fog faster than in greyish fog).
How far you can actually see is hence a function of where you are, how the vertical visibility model of the weather situation is, whether you're looking upward and downward, how patchy the weather situation is and what the mixture of dry vs. wet haze is.
So please give up on the idea that there's a single slider to do all the job which we'd just need to adjust - visibility is complicated, and the model in AW / ALS is fairly sophisticated.