`IShaderSource` was designed with the idea that if you want a shader,
you must want it for a node. So it depends heavily on being given a tile
material and the node drawtype. But this doesn't make sense neither in theory
nor in practice.
This commit takes a small step towards removing the incorrect abstraction.
This PR adds a variety of effects to enhance the visual experience.
"soft" clouds look
Tinted shadows
Crude water reflections (sky and sun) and waves
Translucent foliage
Node specular highlights
Adjusted fog color (more saturated where the fog is lighter)
Minor changes to volumetric lighting (crudely simulates the effect of depth)
Co-authored-by: sfan5 <sfan5@live.de>
... by using the same Clouds object for both.
The mainmenu clouds already used shaders before. I had to choose between
both or neither, so now both the mainmenu clouds and the loading screen
clouds use shaders if available.
Update the profiler names to make more sense of what they actually represent
Move the profiler code from header to its source file
Use monospace font to align lines
Format the statistics line to align better with surrounding values
Refresh the profiler each 3 seconds (roughly)