mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-02-23 11:51:26 +00:00
Optimise uLightLevel
This commit is contained in:
parent
36f2420c32
commit
7a2ee8acdb
4 changed files with 8 additions and 4 deletions
|
@ -169,6 +169,7 @@ bool FGLRenderState::ApplyShader()
|
|||
}
|
||||
|
||||
flavour.doDesaturate = mStreamData.uDesaturationFactor != 0;
|
||||
flavour.useULightLevel = (mLightParms[3] >= 0); //#define uLightLevel uLightAttr.a
|
||||
|
||||
// Yes create shaders for all combinations of active lights to avoid more branches
|
||||
flavour.dynLightsMod = (modLights > 0);
|
||||
|
|
|
@ -664,6 +664,7 @@ bool FShader::Bind(ShaderFlavourData& flavour)
|
|||
variantConfig.AppendFormat("#define DEF_FOG_ENABLED %d\n", flavour.fogEnabled);
|
||||
variantConfig.AppendFormat("#define DEF_FOG_RADIAL %d\n", flavour.fogEquationRadial);
|
||||
variantConfig.AppendFormat("#define DEF_FOG_COLOURED %d\n", flavour.colouredFog);
|
||||
variantConfig.AppendFormat("#define DEF_USE_U_LIGHT_LEVEL %d\n", flavour.useULightLevel);
|
||||
|
||||
variantConfig.AppendFormat("#define DEF_DO_DESATURATE %d\n", flavour.doDesaturate);
|
||||
variantConfig.AppendFormat("#define DEF_DYNAMIC_LIGHTS_MOD %d\n", flavour.dynLightsMod);
|
||||
|
|
|
@ -263,6 +263,7 @@ public:
|
|||
bool dynLightsMod;
|
||||
bool dynLightsSub;
|
||||
bool dynLightsAdd;
|
||||
bool useULightLevel;
|
||||
};
|
||||
|
||||
class FShader
|
||||
|
@ -391,6 +392,7 @@ public:
|
|||
tag |= (flavour.dynLightsMod & 1) << 12;
|
||||
tag |= (flavour.dynLightsSub & 1) << 13;
|
||||
tag |= (flavour.dynLightsAdd & 1) << 14;
|
||||
tag |= (flavour.useULightLevel & 1) << 15;
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
|
|
@ -313,12 +313,12 @@ vec4 getLightColor(Material material, float fogdist, float fogfactor)
|
|||
{
|
||||
vec4 color = vColor;
|
||||
|
||||
if (uLightLevel >= 0.0)
|
||||
#if (DEF_USE_U_LIGHT_LEVEL == 1)
|
||||
{
|
||||
float newlightlevel = 1.0 - R_DoomLightingEquation(uLightLevel);
|
||||
color.rgb *= newlightlevel;
|
||||
}
|
||||
else
|
||||
#else
|
||||
{
|
||||
|
||||
#if (DEF_FOG_ENABLED == 1) && (DEF_FOG_COLOURED == 0)
|
||||
|
@ -336,7 +336,7 @@ vec4 getLightColor(Material material, float fogdist, float fogfactor)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
//
|
||||
// handle glowing walls
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue