Open petrmikheev opened 2 years ago
Both of these are issues with OpenMW's built-in fog which happens during forward rendering. There's not too much I can do about this other than recommend that you play with the highest view distance your setup can manage. That said, if you know of a way to turn off in-game fog entirely, that would be appreciated.
Probably it can look better if the sky above the real horizon line is blue (because we are staying high enough to see it), but everything below the horizon is hidden in opaque mist.
This is not how real mist works. When it gets very misty, the true horizon is no longer visible.
That said, if you know of a way to turn off in-game fog entirely, that would be appreciated.
These lines in settings.cfg disable it:
[Fog]
use distant fog = True
distant land fog start = 10000000
distant land fog end = 10000000
See here: https://openmw.readthedocs.io/en/latest/reference/modding/settings/fog.html
There's not too much I can do about this other than recommend that you play with the highest view distance your setup can manage.
There is always a compromise between FPS, view distance, quality of water shader, and the number of mods that adds small details. So even with a modern setup there are reasons to have view distance less than entire Tamriel. And if view distance is finite, then always there is something half rendered. And even if it takes only several pixels on the screen, it is annoying if you rotate camera a bit and a building far away has appeared from nowhere.
I think that the objects that are close to the cut off line should have the color of the sky rather than the color of the fog. And if a postprocessing shader can draw a new sky, then it definitely can also assign this color to the objects on the border.
And if a postprocessing shader can draw a new sky, then it definitely can also assign this color to the objects on the border.
Unfortunately, this is not actually the case. The post-processing shader doesn't have knowledge of the 'original' colour of objects to do blending with. As far as it is concerned, the fog is part of the object's colour.
The post-processing shader doesn't have knowledge of the 'original' colour of objects to do blending with.
The post processing shader could perform the inverse operation of fog blending to get approximately the original color, or am I missing something? Of course, there may be some quantization error, but maybe that wouldn't matter after fog is blended back in. For instance, if
$color{final} = color{original} \cdot (1 - \beta) + color_{fog} \cdot \beta$
where $\beta$ is some function of depth, then
$color{original} = \frac{color{final} - color_{fog} \cdot \beta}{1 - \beta}$
It could, but then we'd need access to information about fog distance in the shader, which unfortunately I don't think is available. Additionally, I believe the colour channels are 16 bits or even 8 bits by default, so it's likely that any attempt to reverse the effect would just result in artifacts. It's just easier and better to disable the built-in fog.
A couple of ideas that can potentially improve experience for players with low end hardware:
Probably a postprocessing shader can make it look better.
Probably it can look better if the sky above the real horizon line is blue (because we are staying high enough to see it), but everything below the horizon is hidden in opaque mist.