On Fog, Clouds and Geometry

I was reading about the Threejs fog.

There are two types, linear and exponential.
In the linear you state near and far.
And in the exponential you state density.
And to both you send color.

I think there really should just be one fog.
Because in the physical world, there is only one fog.
And near and far should not be stated, they are just derivatives of the density.

One should not state how far it reaches, one states the fog density and from that, its distance can be deduced.

Also, I really think fog should have a geometry.
Fog should really be, a material.

We have an object and it can have the material fog.
Then we can place the fog somewhere in this world.
Without needing to understand, how fog works.

Then we can create foggy areas in the world.

Maybe one day we can have:
Geometry, cloud.
Material, cloud.

Then we can create clouds with the push of a button.

Which coincidentally, is also a fog… if you’re in it.

By using the volumetric cloud example, you can tweak the material to display objects as if surrounded by local fog and clouds. Then progressively change opacity as camera get closer, change the size of the volume too. three.js examples

Of course it may require further changes to reach your description (like a whole tool/plugin). But it’s a good start, and it’s not that expensive.

very quick test with slight modifications to display a cube inside it