Skip to content

Commit 1801209

Browse files
committed
Add support for top vignette in postprocess_controller
1 parent 4797e03 commit 1801209

6 files changed

Lines changed: 54 additions & 0 deletions

File tree

sp/src/game/client/viewpostprocess.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,6 +1301,10 @@ class CEnginePostMaterialProxy : public CEntityMaterialProxy
13011301
IMaterialVar *m_pMaterialParam_VignetteEnd;
13021302
IMaterialVar *m_pMaterialParam_VignetteBlurEnable;
13031303
IMaterialVar *m_pMaterialParam_VignetteBlurStrength;
1304+
#ifdef MAPBASE
1305+
IMaterialVar *m_pMaterialParam_VignetteEnable;
1306+
IMaterialVar *m_pMaterialParam_VignetteStrength;
1307+
#endif
13041308
IMaterialVar *m_pMaterialParam_FadeToBlackStrength;
13051309
IMaterialVar *m_pMaterialParam_DepthBlurFocalDistance;
13061310
IMaterialVar *m_pMaterialParam_DepthBlurStrength;
@@ -1353,6 +1357,10 @@ CEnginePostMaterialProxy::CEnginePostMaterialProxy()
13531357
m_pMaterialParam_VignetteEnd = NULL;
13541358
m_pMaterialParam_VignetteBlurEnable = NULL;
13551359
m_pMaterialParam_VignetteBlurStrength = NULL;
1360+
#ifdef MAPBASE
1361+
m_pMaterialParam_VignetteEnable = NULL;
1362+
m_pMaterialParam_VignetteStrength = NULL;
1363+
#endif
13561364
m_pMaterialParam_FadeToBlackStrength = NULL;
13571365
m_pMaterialParam_DepthBlurFocalDistance = NULL;
13581366
m_pMaterialParam_DepthBlurStrength = NULL;
@@ -1388,6 +1396,10 @@ bool CEnginePostMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues
13881396
m_pMaterialParam_VignetteEnd = pMaterial->FindVar( "$localContrastVignetteEnd", &bFoundVar, false );
13891397
m_pMaterialParam_VignetteBlurEnable = pMaterial->FindVar( "$blurredVignetteEnable", &bFoundVar, false );
13901398
m_pMaterialParam_VignetteBlurStrength = pMaterial->FindVar( "$blurredVignetteScale", &bFoundVar, false );
1399+
#ifdef MAPBASE
1400+
m_pMaterialParam_VignetteEnable = pMaterial->FindVar( "$vignetteEnable", &bFoundVar, false );
1401+
m_pMaterialParam_VignetteStrength = pMaterial->FindVar( "$vignetteStrength", &bFoundVar, false );
1402+
#endif
13911403
m_pMaterialParam_FadeToBlackStrength = pMaterial->FindVar( "$fadeToBlackScale", &bFoundVar, false );
13921404
m_pMaterialParam_DepthBlurFocalDistance = pMaterial->FindVar( "$depthBlurFocalDistance", &bFoundVar, false );
13931405
m_pMaterialParam_DepthBlurStrength = pMaterial->FindVar( "$depthBlurStrength", &bFoundVar, false );
@@ -1437,6 +1449,14 @@ void CEnginePostMaterialProxy::OnBind( C_BaseEntity *pEnt )
14371449
if ( m_pMaterialParam_VignetteBlurStrength )
14381450
m_pMaterialParam_VignetteBlurStrength->SetFloatValue( s_LocalPostProcessParameters.m_flParameters[ PPPN_VIGNETTE_BLUR_STRENGTH ] );
14391451

1452+
#ifdef MAPBASE
1453+
if ( m_pMaterialParam_VignetteEnable )
1454+
m_pMaterialParam_VignetteEnable->SetIntValue( s_LocalPostProcessParameters.m_flParameters[ PPPN_TOP_VIGNETTE_STRENGTH ] > 0.0f ? 1 : 0 );
1455+
1456+
if (m_pMaterialParam_VignetteStrength)
1457+
m_pMaterialParam_VignetteStrength->SetFloatValue( s_LocalPostProcessParameters.m_flParameters[ PPPN_TOP_VIGNETTE_STRENGTH ] );
1458+
#endif
1459+
14401460
if ( m_pMaterialParam_FadeToBlackStrength )
14411461
m_pMaterialParam_FadeToBlackStrength->SetFloatValue( s_LocalPostProcessParameters.m_flParameters[ PPPN_FADE_TO_BLACK_STRENGTH ] );
14421462

sp/src/game/server/postprocesscontroller.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ BEGIN_DATADESC( CPostProcessController )
4242
DEFINE_KEYFIELD( m_flPostProcessParameters[ PPPN_DEPTH_BLUR_STRENGTH ], FIELD_FLOAT, "depthblurstrength" ),
4343
DEFINE_KEYFIELD( m_flPostProcessParameters[ PPPN_SCREEN_BLUR_STRENGTH ], FIELD_FLOAT, "screenblurstrength" ),
4444
DEFINE_KEYFIELD( m_flPostProcessParameters[ PPPN_FILM_GRAIN_STRENGTH ], FIELD_FLOAT, "filmgrainstrength" ),
45+
#ifdef MAPBASE
46+
DEFINE_KEYFIELD( m_flPostProcessParameters[ PPPN_TOP_VIGNETTE_STRENGTH ], FIELD_FLOAT, "topvignettestrength" ),
47+
#endif
4548

4649
// Inputs
4750
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFadeTime", InputSetFadeTime ),
@@ -55,6 +58,9 @@ BEGIN_DATADESC( CPostProcessController )
5558
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetDepthBlurStrength", InputSetDepthBlurStrength ),
5659
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetScreenBlurStrength", InputSetScreenBlurStrength ),
5760
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFilmGrainStrength", InputSetFilmGrainStrength ),
61+
#ifdef MAPBASE
62+
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetTopVignetteStrength", InputSetTopVignetteStrength ),
63+
#endif
5864
END_DATADESC()
5965

6066
IMPLEMENT_SERVERCLASS_ST( CPostProcessController, DT_PostProcessController )
@@ -139,6 +145,13 @@ void CPostProcessController::InputSetFilmGrainStrength( inputdata_t &inputdata )
139145
m_flPostProcessParameters.Set( PPPN_FILM_GRAIN_STRENGTH, inputdata.value.Float() );
140146
}
141147

148+
#ifdef MAPBASE
149+
void CPostProcessController::InputSetTopVignetteStrength( inputdata_t &inputdata )
150+
{
151+
m_flPostProcessParameters.Set( PPPN_TOP_VIGNETTE_STRENGTH, inputdata.value.Float() );
152+
}
153+
#endif
154+
142155
//-----------------------------------------------------------------------------
143156
// Purpose: Clear out the PostProcess controller.
144157
//-----------------------------------------------------------------------------

sp/src/game/server/postprocesscontroller.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ class CPostProcessController : public CBaseEntity
3333
void InputSetDepthBlurStrength(inputdata_t &data);
3434
void InputSetScreenBlurStrength(inputdata_t &data);
3535
void InputSetFilmGrainStrength(inputdata_t &data);
36+
#ifdef MAPBASE
37+
void InputSetTopVignetteStrength(inputdata_t &data);
38+
#endif
3639

3740
void InputTurnOn(inputdata_t &data);
3841
void InputTurnOff(inputdata_t &data);

sp/src/game/shared/postprocess_shared.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ enum PostProcessParameterNames_t
2424
PPPN_DEPTH_BLUR_STRENGTH,
2525
PPPN_SCREEN_BLUR_STRENGTH,
2626
PPPN_FILM_GRAIN_STRENGTH,
27+
#ifdef MAPBASE
28+
PPPN_TOP_VIGNETTE_STRENGTH,
29+
#endif
2730

2831
POST_PROCESS_PARAMETER_COUNT
2932
};

sp/src/materialsystem/stdshaders/SDK_engine_post_ps20b.fxc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ float4 g_vLocalContrastVignetteParams : register( c9 );
7575
#define g_flLocalContrastVignetteStart g_vLocalContrastVignetteParams.x
7676
#define g_flLocalContrastVignetteEnd g_vLocalContrastVignetteParams.y
7777
#define g_flLocalContrastEdgeStrength g_vLocalContrastVignetteParams.z
78+
#define g_flVignetteStrength g_vLocalContrastVignetteParams.w
7879

7980
float g_flFadeToBlackStrength : register( c10 );
8081

@@ -401,6 +402,8 @@ float4 main( PS_INPUT i ) : COLOR
401402
// This tex2D solves the 3 lines of math above
402403
flVignette = tex2D( VignetteSampler, vUv.xy ).r; // Red is for the PC
403404
flVignette = saturate( flVignette * 0.55 + 0.46 );
405+
406+
flVignette = lerp( 1.0, flVignette, g_flVignetteStrength );
404407

405408
outColor.rgb *= flVignette;
406409
}

sp/src/materialsystem/stdshaders/engine_post_dx9.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ BEGIN_VS_SHADER_FLAGS( SDK_Engine_Post_dx9, "Engine post-processing effects (sof
8989
SHADER_PARAM( COLORCORRECTIONMASK, SHADER_PARAM_TYPE_TEXTURE, "_rt_ColCorrectMask", "" )
9090
SHADER_PARAM( COLCORRECT_EXCLUDEMASK, SHADER_PARAM_TYPE_INTEGER, "0", "" )
9191
SHADER_PARAM( COLCORRECT_EXCLUDEEXPONENT, SHADER_PARAM_TYPE_FLOAT, "1.0", "" )
92+
93+
// Vignette strength
94+
SHADER_PARAM( VIGNETTESTRENGTH, SHADER_PARAM_TYPE_FLOAT, "1", "" )
9295
#endif
9396
END_SHADER_PARAMS
9497

@@ -242,6 +245,12 @@ BEGIN_VS_SHADER_FLAGS( SDK_Engine_Post_dx9, "Engine post-processing effects (sof
242245
{
243246
params[ DESATURATION ]->SetFloatValue( 0.0f );
244247
}
248+
#ifdef MAPBASE
249+
if ( !params[ VIGNETTESTRENGTH ]->IsDefined() )
250+
{
251+
params[ VIGNETTESTRENGTH ]->SetFloatValue( 1.0f );
252+
}
253+
#endif
245254

246255
SET_FLAGS2( MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE );
247256
}
@@ -604,6 +613,9 @@ BEGIN_VS_SHADER_FLAGS( SDK_Engine_Post_dx9, "Engine post-processing effects (sof
604613
{
605614
vPsConst[2] = mat_local_contrast_edge_scale_override.GetFloat();
606615
}
616+
#ifdef MAPBASE
617+
vPsConst[3] = params[ VIGNETTESTRENGTH ]->GetFloatValue();
618+
#endif
607619
pShaderAPI->SetPixelShaderConstant( 9, vPsConst, 1 );
608620
}
609621

0 commit comments

Comments
 (0)