Opened 7 years ago
Last modified 6 years ago
#4626 closed enhancement
Disable Fog option — at Version 1
Reported by: | elexis | Owned by: | |
---|---|---|---|
Priority: | Should Have | Milestone: | Alpha 23 |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description (last modified by )
As proposed by cc, there are three reasons why someone would want to disable fog (the graphics effect, not the fog of war):
- For playing, the fog is often obstructing the view, even if it's visually appealing.
- For promotional screenshots we want to keep shaders enabled (especially for shadows) and zoom out very far without getting everything fogged.
- On many maps there is too much fog (they should be fixed some day).
This example shows that we can change the setting at runtime:
Index: source/renderer/RenderModifiers.cpp =================================================================== --- source/renderer/RenderModifiers.cpp (revision 19759) +++ source/renderer/RenderModifiers.cpp (working copy) @@ -92,7 +92,6 @@ shader->Uniform(str_sunColor, GetLightEnv()->m_SunColor); shader->Uniform(str_fogColor, GetLightEnv()->m_FogColor); - shader->Uniform(str_fogParams, GetLightEnv()->m_FogFactor, GetLightEnv()->m_FogMax, 0.f, 0.f); } if (shader->GetTextureBinding(str_losTex).Active()) Index: source/renderer/TerrainRenderer.cpp =================================================================== --- source/renderer/TerrainRenderer.cpp (revision 19759) +++ source/renderer/TerrainRenderer.cpp (working copy) @@ -473,7 +473,6 @@ shader->Uniform(str_sunDir, lightEnv.GetSunDir()); shader->Uniform(str_fogColor, lightEnv.m_FogColor); - shader->Uniform(str_fogParams, lightEnv.m_FogFactor, lightEnv.m_FogMax, 0.f, 0.f); } void TerrainRenderer::RenderTerrainShader(const CShaderDefines& context, int cullGroup, ShadowMap* shadow) @@ -788,7 +787,6 @@ m->fancyWaterShader->Uniform(str_losMatrix, losTexture.GetTextureMatrix()); m->fancyWaterShader->Uniform(str_cameraPos, camPos); m->fancyWaterShader->Uniform(str_fogColor, lightEnv.m_FogColor); - m->fancyWaterShader->Uniform(str_fogParams, lightEnv.m_FogFactor, lightEnv.m_FogMax, 0.f, 0.f); m->fancyWaterShader->Uniform(str_time, (float)time); m->fancyWaterShader->Uniform(str_screenSize, (float)g_Renderer.GetWidth(), (float)g_Renderer.GetHeight(), 0.0f, 0.0f);
The setting should depend on GLSL, just like the water settings depend on the non-ugly water setting in gui/options/options.json
.
Change History (2)
comment:1 by , 7 years ago
Description: | modified (diff) |
---|
by , 7 years ago
Attachment: | fog_v1.patch added |
---|
Note:
See TracTickets
for help on using tickets.