﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc	phab_field
4626	Disable Fog option	elexis		"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`.
"	defect	new	Should Have	Backlog	Core engine		simple		
