How to redefine a vector of Mist (from World button's area) ?

A predefined Mist effect always uses a vector from the camera view axis, doesn’t it? How can I give it a new vector of my choice?
For example to create a fog that changes its desity from left to right, not just simple from near to far. Or to give it a direction of a Spotlight then use it to tone the searchlight effect made by this lamp. Of course due to the distance from the light sorce, not to camera location again.

(Sorry if not clearly stated, English is not my native language)

You can always try to use a node material and apply it to every object in the scene, the built in mist already has a height control, or you can take to the source code and make Blender mist more powerful (it’s been barely worked on for years)