mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 03:06:29 +00:00
Option to disable fog effects.
Fixes #4626 Patch By: dp304 This was SVN commit r20584.
This commit is contained in:
@@ -74,6 +74,7 @@ shadowquality = 0 ; Shadow map resolution. (-2 - Very Low, -1 - Low, 0 - Me
|
||||
shadowpcf = true
|
||||
vsync = false
|
||||
particles = true
|
||||
fog = true
|
||||
silhouettes = true
|
||||
showsky = true
|
||||
|
||||
|
||||
@@ -128,6 +128,14 @@
|
||||
"config": "preferglsl",
|
||||
"function": "Renderer_SetPreferGLSLEnabled"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Fog",
|
||||
"tooltip": "Enable Fog",
|
||||
"dependencies": ["preferglsl"],
|
||||
"config": "fog",
|
||||
"function": "Renderer_SetFogEnabled"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Post Processing",
|
||||
|
||||
@@ -225,7 +225,9 @@ void main()
|
||||
color = mix(texdiffuse, color, specular.a);
|
||||
#endif
|
||||
|
||||
color = get_fog(color);
|
||||
#if USE_FOG
|
||||
color = get_fog(color);
|
||||
#endif
|
||||
|
||||
#if !IGNORE_LOS
|
||||
float los = texture2D(losTex, v_los).a;
|
||||
|
||||
@@ -35,5 +35,9 @@ void main()
|
||||
los = los < 0.03 ? 0.0 : los;
|
||||
color.rgb *= los;
|
||||
|
||||
gl_FragColor = get_fog(color);
|
||||
#if USE_FOG
|
||||
gl_FragColor = get_fog(color);
|
||||
#else
|
||||
gl_FragColor = color;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -22,5 +22,9 @@ vec3 get_fog(vec3 color)
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(get_fog(playerColor.rgb),playerColor.a);
|
||||
#if USE_FOG
|
||||
gl_FragColor = vec4(get_fog(playerColor.rgb), playerColor.a);
|
||||
#else
|
||||
gl_FragColor = vec4(playerColor.rgb, playerColor.a);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -236,7 +236,9 @@ void main()
|
||||
color = mix(texdiffuse, color, specular.a);
|
||||
#endif
|
||||
|
||||
color = get_fog(color);
|
||||
#if USE_FOG
|
||||
color = get_fog(color);
|
||||
#endif
|
||||
|
||||
float los = texture2D(losTex, v_los).a;
|
||||
los = los < 0.03 ? 0.0 : los;
|
||||
|
||||
@@ -325,7 +325,13 @@ void main()
|
||||
#else
|
||||
color += specular;
|
||||
#endif
|
||||
|
||||
|
||||
#if USE_FOG
|
||||
color = get_fog(color);
|
||||
#endif
|
||||
|
||||
gl_FragColor.rgb = color;
|
||||
|
||||
#if USE_FANCY_EFFECTS
|
||||
vec4 FoamEffects = texture2D(waterEffectsTexOther, gl_FragCoord.xy/screenSize);
|
||||
|
||||
@@ -338,13 +344,10 @@ void main()
|
||||
|
||||
foam1.x = foaminterp.x * WindCosSin.x - foaminterp.z * WindCosSin.y;
|
||||
|
||||
float foam = FoamEffects.r * FoamEffects.a*0.4 + pow(foam1.x*(5.0+waviness),(2.6 - waviness/5.5));
|
||||
|
||||
gl_FragColor.rgb = get_fog(color) * losMod + foam * losMod;
|
||||
#else
|
||||
gl_FragColor.rgb = get_fog(color) * losMod;
|
||||
gl_FragColor.rgb += FoamEffects.r * FoamEffects.a * 0.4 + pow(foam1.x * (5.0 + waviness), 2.6 - waviness / 5.5);
|
||||
#endif
|
||||
|
||||
|
||||
gl_FragColor.rgb *= losMod;
|
||||
gl_FragColor.a = 1.0;
|
||||
|
||||
#if !USE_REFRACTION
|
||||
|
||||
@@ -62,6 +62,7 @@ X(USE_SHADOW)
|
||||
X(USE_SHADOW_PCF)
|
||||
X(USE_SHADOW_SAMPLER)
|
||||
X(USE_SHADOWS_ON_WATER)
|
||||
X(USE_FOG)
|
||||
X(WATERTYPE_CLAP)
|
||||
X(WATERTYPE_LAKE)
|
||||
X2(_emptystring, "")
|
||||
|
||||
@@ -50,6 +50,7 @@ bool g_WaterReflection = false;
|
||||
bool g_WaterShadows = false;
|
||||
|
||||
bool g_Particles = false;
|
||||
bool g_Fog = true;
|
||||
bool g_Silhouettes = false;
|
||||
bool g_ShowSky = false;
|
||||
|
||||
@@ -105,6 +106,7 @@ static void LoadGlobals()
|
||||
|
||||
CFG_GET_VAL("renderpath", g_RenderPath);
|
||||
CFG_GET_VAL("particles", g_Particles);
|
||||
CFG_GET_VAL("fog", g_Fog);
|
||||
CFG_GET_VAL("silhouettes", g_Silhouettes);
|
||||
CFG_GET_VAL("showsky", g_ShowSky);
|
||||
CFG_GET_VAL("preferglsl", g_PreferGLSL);
|
||||
|
||||
@@ -67,6 +67,8 @@ extern bool g_WaterShadows;
|
||||
extern bool g_ShadowPCF;
|
||||
// flag to switch on particles rendering
|
||||
extern bool g_Particles;
|
||||
// flag to switch on fog
|
||||
extern bool g_Fog;
|
||||
// flag to switch on unit silhouettes
|
||||
extern bool g_Silhouettes;
|
||||
// flag to switch on sky rendering
|
||||
|
||||
@@ -632,6 +632,8 @@ static void InitRenderer()
|
||||
g_ConfigDB.SetValueBool(CFG_SYSTEM, "shadowpcf", g_ShadowPCF);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_PARTICLES, g_Particles);
|
||||
g_ConfigDB.SetValueBool(CFG_SYSTEM, "particles", g_Particles);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_FOG, g_Fog);
|
||||
g_ConfigDB.SetValueBool(CFG_SYSTEM, "fog", g_Fog);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_SILHOUETTES, g_Silhouettes);
|
||||
g_ConfigDB.SetValueBool(CFG_SYSTEM, "silhouettes", g_Silhouettes);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_SHOWSKY, g_ShowSky);
|
||||
|
||||
@@ -443,6 +443,7 @@ CRenderer::CRenderer()
|
||||
m_Options.m_Particles = false;
|
||||
m_Options.m_Silhouettes = false;
|
||||
m_Options.m_PreferGLSL = false;
|
||||
m_Options.m_Fog = false;
|
||||
m_Options.m_ForceAlphaTest = false;
|
||||
m_Options.m_GPUSkinning = false;
|
||||
m_Options.m_SmoothLOS = false;
|
||||
@@ -582,6 +583,9 @@ void CRenderer::ReloadShaders()
|
||||
if (m_LightEnv)
|
||||
m->globalContext.Add(CStrIntern("LIGHTING_MODEL_" + m_LightEnv->GetLightingModel()), str_1);
|
||||
|
||||
if (m_Options.m_PreferGLSL && m_Options.m_Fog)
|
||||
m->globalContext.Add(str_USE_FOG, str_1);
|
||||
|
||||
m->Model.ModShader = LitRenderModifierPtr(new ShaderRenderModifier());
|
||||
|
||||
bool cpuLighting = (GetRenderPath() == RP_FIXED);
|
||||
@@ -722,6 +726,10 @@ void CRenderer::SetOptionBool(enum Option opt,bool value)
|
||||
MakeShadersDirty();
|
||||
RecomputeSystemShaderDefines();
|
||||
break;
|
||||
case OPT_FOG:
|
||||
m_Options.m_Fog = value;
|
||||
MakeShadersDirty();
|
||||
break;
|
||||
case OPT_SILHOUETTES:
|
||||
m_Options.m_Silhouettes = value;
|
||||
break;
|
||||
@@ -770,6 +778,8 @@ bool CRenderer::GetOptionBool(enum Option opt) const
|
||||
return m_Options.m_Particles;
|
||||
case OPT_PREFERGLSL:
|
||||
return m_Options.m_PreferGLSL;
|
||||
case OPT_FOG:
|
||||
return m_Options.m_Fog;
|
||||
case OPT_SILHOUETTES:
|
||||
return m_Options.m_Silhouettes;
|
||||
case OPT_SHOWSKY:
|
||||
|
||||
@@ -85,6 +85,7 @@ public:
|
||||
OPT_SHADOWPCF,
|
||||
OPT_PARTICLES,
|
||||
OPT_PREFERGLSL,
|
||||
OPT_FOG,
|
||||
OPT_SILHOUETTES,
|
||||
OPT_SHOWSKY,
|
||||
OPT_SMOOTHLOS,
|
||||
@@ -154,6 +155,7 @@ public:
|
||||
bool m_PreferGLSL;
|
||||
bool m_ForceAlphaTest;
|
||||
bool m_GPUSkinning;
|
||||
bool m_Fog;
|
||||
bool m_Silhouettes;
|
||||
bool m_SmoothLOS;
|
||||
bool m_ShowSky;
|
||||
|
||||
@@ -43,6 +43,7 @@ IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREALDEPTH, WaterRealDepth);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREFLECTION, WaterReflection);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREFRACTION, WaterRefraction);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHADOWSONWATER, WaterShadows);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(FOG, Fog);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SILHOUETTES, Silhouettes);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHOWSKY, ShowSky);
|
||||
IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SMOOTHLOS, SmoothLOS);
|
||||
@@ -86,6 +87,7 @@ void JSI_Renderer::RegisterScriptFunctions(const ScriptInterface& scriptInterfac
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(WaterReflection);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(WaterRefraction);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(WaterShadows);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(Fog);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(Silhouettes);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(ShowSky);
|
||||
REGISTER_BOOLEAN_SCRIPT_SETTING(SmoothLOS);
|
||||
|
||||
@@ -41,6 +41,7 @@ namespace JSI_Renderer
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(WaterReflection);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(WaterRefraction);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(WaterShadows);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(Fog);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(Silhouettes);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(ShowSky);
|
||||
DECLARE_BOOLEAN_SCRIPT_SETTING(SmoothLOS);
|
||||
|
||||
Reference in New Issue
Block a user