Added CRT options as cvars

This commit is contained in:
Robert Beckebans 2023-12-29 12:31:43 +01:00
parent df7d0b8d28
commit e51b41cc66
6 changed files with 24 additions and 4 deletions

View file

@ -6208,11 +6208,18 @@ void idRenderBackend::CRTPostProcess()
GL_SelectTexture( 1 );
globalImages->blueNoiseImage256->Bind();
renderProgManager.BindShader_CrtNewPixie();
if( r_useCRTPostFX.GetInteger() == 1 )
{
renderProgManager.BindShader_CrtMattias();
}
else
{
renderProgManager.BindShader_CrtNewPixie();
}
float windowCoordParm[4];
windowCoordParm[0] = 1.0f / screenWidth;
windowCoordParm[1] = 1.0f / screenHeight;
windowCoordParm[0] = r_crtCurvature.GetFloat();
windowCoordParm[1] = r_crtVignette.GetFloat();
windowCoordParm[2] = screenWidth;
windowCoordParm[3] = screenHeight;
SetFragmentParm( RENDERPARM_WINDOWCOORD, windowCoordParm ); // rpWindowCoord

View file

@ -1294,6 +1294,8 @@ extern idCVar r_taaMaxRadiance;
extern idCVar r_taaMotionVectors;
extern idCVar r_useCRTPostFX;
extern idCVar r_crtCurvature;
extern idCVar r_crtVignette;
// RB end
/*

View file

@ -522,6 +522,7 @@ void idRenderProgManager::Init( nvrhi::IDevice* device )
{ BUILTIN_WOBBLESKY, "builtin/legacy/wobblesky", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_DEFAULT },
{ BUILTIN_POSTPROCESS, "builtin/post/postprocess", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_POST_PROCESS_FINAL },
{ BUILTIN_POSTPROCESS_RETRO_C64, "builtin/post/retro_c64", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_POST_PROCESS_FINAL },
{ BUILTIN_CRT_MATTIAS, "builtin/post/crt_mattias", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_POST_PROCESS_FINAL },
{ BUILTIN_CRT_NUPIXIE, "builtin/post/crt_newpixie", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_POST_PROCESS_FINAL },
{ BUILTIN_SCREEN, "builtin/post/screen", "", {}, false, SHADER_STAGE_DEFAULT, LAYOUT_DRAW_VERT, BINDING_LAYOUT_DEFAULT },

View file

@ -367,6 +367,7 @@ enum
BUILTIN_POSTPROCESS,
// RB begin
BUILTIN_POSTPROCESS_RETRO_C64,
BUILTIN_CRT_MATTIAS,
BUILTIN_CRT_NUPIXIE,
BUILTIN_SCREEN,
BUILTIN_TONEMAP,
@ -824,6 +825,11 @@ public:
BindShader_Builtin( BUILTIN_POSTPROCESS_RETRO_C64 );
}
void BindShader_CrtMattias()
{
BindShader_Builtin( BUILTIN_CRT_MATTIAS );
}
void BindShader_CrtNewPixie()
{
BindShader_Builtin( BUILTIN_CRT_NUPIXIE );

View file

@ -303,7 +303,9 @@ idCVar r_taaNewFrameWeight( "r_taaNewFrameWeight", "0.1", CVAR_RENDERER | CVAR_F
idCVar r_taaMaxRadiance( "r_taaMaxRadiance", "10000", CVAR_RENDERER | CVAR_FLOAT, "" );
idCVar r_taaMotionVectors( "r_taaMotionVectors", "1", CVAR_RENDERER | CVAR_BOOL, "" );
idCVar r_useCRTPostFX( "r_useCRTPostFX", "1", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_INTEGER, "CRT simulation: 1 = New Pixie", 0, 1 );
idCVar r_useCRTPostFX( "r_useCRTPostFX", "0", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_INTEGER, "RetroArch CRT shader: 1 = Matthias CRT, 1 = New Pixie", 0, 2 );
idCVar r_crtCurvature( "r_crtCurvature", "2", CVAR_RENDERER | CVAR_FLOAT, "rounded borders" );
idCVar r_crtVignette( "r_crtVignette", "0.8", CVAR_RENDERER | CVAR_FLOAT, "fading into the borders" );
// RB end
const char* fileExten[4] = { "tga", "png", "jpg", "exr" };

View file

@ -54,6 +54,8 @@ builtin/post/postprocess.vs.hlsl -T vs_5_0
builtin/post/postprocess.ps.hlsl -T ps_5_0
builtin/post/retro_c64.vs.hlsl -T vs_5_0
builtin/post/retro_c64.ps.hlsl -T ps_5_0
builtin/post/crt_mattias.vs.hlsl -T vs_5_0
builtin/post/crt_mattias.ps.hlsl -T ps_5_0
builtin/post/crt_newpixie.vs.hlsl -T vs_5_0
builtin/post/crt_newpixie.ps.hlsl -T ps_5_0
builtin/post/screen.vs.hlsl -T vs_5_0