Added shadowfilter parameter

This commit is contained in:
2022-09-30 19:14:40 +03:00
parent 130f0bcec5
commit 457fca8458
4 changed files with 18 additions and 1 deletions

View File

@@ -92,6 +92,7 @@ private:
float m_flLinearAtten;
float m_flQuadraticAtten;
float m_flShadowAtten;
float m_flShadowFilter;
bool m_bAlwaysDraw;
//bool m_bProjectedTextureVersion;

View File

@@ -63,6 +63,7 @@ IMPLEMENT_CLIENTCLASS_DT( C_EnvProjectedTexture, DT_EnvProjectedTexture, CEnvPro
RecvPropFloat( RECVINFO( m_flLinearAtten ) ),
RecvPropFloat( RECVINFO( m_flQuadraticAtten ) ),
RecvPropFloat( RECVINFO( m_flShadowAtten ) ),
RecvPropFloat( RECVINFO( m_flShadowFilter ) ),
RecvPropBool( RECVINFO( m_bAlwaysDraw ) ),
// Not needed on the client right now, change when it actually is needed
@@ -100,6 +101,7 @@ C_EnvProjectedTexture *C_EnvProjectedTexture::Create( )
pEnt->m_flLinearAtten = 100.0f;
pEnt->m_flQuadraticAtten = 0.0f;
pEnt->m_flShadowAtten = 0.0f;
pEnt->m_flShadowFilter = 0.3f;
//pEnt->m_bProjectedTextureVersion = 1;
#endif
@@ -235,7 +237,7 @@ void C_EnvProjectedTexture::UpdateLight( void )
{
Vector vForward, vRight, vUp, vPos = GetAbsOrigin();
FlashlightState_t state;
state.m_flShadowFilterSize = r_flashlightfilter.GetFloat();
state.m_flShadowFilterSize = m_flShadowFilter;
#ifdef MAPBASE
if ( m_hTargetEntity != NULL && !m_bDontFollowTarget )

View File

@@ -50,6 +50,7 @@ BEGIN_DATADESC( CEnvProjectedTexture )
DEFINE_FIELD( m_flLinearAtten, FIELD_FLOAT ),
DEFINE_FIELD( m_flQuadraticAtten, FIELD_FLOAT ),
DEFINE_KEYFIELD( m_flShadowAtten, FIELD_FLOAT, "shadowatten" ),
DEFINE_KEYFIELD(m_flShadowFilter, FIELD_FLOAT, "shadowfilter"),
#endif
DEFINE_INPUTFUNC( FIELD_VOID, "TurnOn", InputTurnOn ),
@@ -68,6 +69,7 @@ BEGIN_DATADESC( CEnvProjectedTexture )
DEFINE_INPUTFUNC( FIELD_BOOLEAN, "EnableShadows", InputSetEnableShadows ),
DEFINE_INPUTFUNC( FIELD_COLOR32, "LightColor", InputSetLightColor ),
DEFINE_INPUTFUNC( FIELD_FLOAT, "Ambient", InputSetAmbient ),
DEFINE_INPUTFUNC( FIELD_STRING, "SpotlightTexture", InputSetSpotlightTexture ),
#ifdef MAPBASE
DEFINE_INPUTFUNC( FIELD_INTEGER, "SetSpotlightFrame", InputSetSpotlightFrame ),
@@ -77,6 +79,7 @@ BEGIN_DATADESC( CEnvProjectedTexture )
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetLinear", InputSetLinear ),
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetConstant", InputSetConstant ),
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetShadowAtten", InputSetShadowAtten ),
DEFINE_INPUTFUNC(FIELD_FLOAT, "SetFilter", InputSetFilter),
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetNearZ", InputSetNearZ ),
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFarZ", InputSetFarZ ),
DEFINE_INPUTFUNC( FIELD_VOID, "AlwaysDrawOn", InputAlwaysDrawOn ),
@@ -116,6 +119,7 @@ IMPLEMENT_SERVERCLASS_ST( CEnvProjectedTexture, DT_EnvProjectedTexture )
SendPropFloat( SENDINFO( m_flLinearAtten ) ),
SendPropFloat( SENDINFO( m_flQuadraticAtten ) ),
SendPropFloat( SENDINFO( m_flShadowAtten ) ),
SendPropFloat(SENDINFO(m_flShadowFilter)),
SendPropBool( SENDINFO( m_bAlwaysDraw ) ),
// Not needed on the client right now, change when it actually is needed
@@ -158,6 +162,7 @@ CEnvProjectedTexture::CEnvProjectedTexture( void )
m_flLinearAtten = 100.0f;
m_flConstantAtten = 0.0f;
m_flShadowAtten = 0.0f;
m_flShadowFilter = 0.3f;
#endif
}
@@ -316,6 +321,12 @@ void CEnvProjectedTexture::InputSetHorFOV( inputdata_t &inputdata )
{
m_flLightHorFOV = inputdata.value.Float();
}
void CEnvProjectedTexture::InputSetFilter(inputdata_t& inputdata)
{
m_flShadowFilter = inputdata.value.Float();
}
#endif
void CEnvProjectedTexture::InputSetTarget( inputdata_t &inputdata )

View File

@@ -64,6 +64,7 @@ public:
void InputAlwaysDrawOff( inputdata_t &inputdata ) { m_bAlwaysDraw = false; }
void InputStopFollowingTarget( inputdata_t &inputdata ) { m_bDontFollowTarget = true; }
void InputStartFollowingTarget( inputdata_t &inputdata ) { m_bDontFollowTarget = false; }
void InputSetFilter(inputdata_t& inputdata);
// Corrects keyvalue/input attenuation for internal FlashlightEffect_t attenuation.
float CorrectConstantAtten( float fl ) { return fl * 0.5f; }
@@ -105,6 +106,8 @@ private:
CNetworkVar( float, m_flQuadraticAtten );
CNetworkVar( float, m_flShadowAtten );
CNetworkVar(float, m_flShadowFilter);
CNetworkVar( bool, m_bAlwaysDraw );
// 1 = New projected texture