From 27bf0ae072b0bc3b2819e052684b0a5c96669b27 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 17 Oct 2024 20:34:52 +0200 Subject: [PATCH] Increase default geometric detail on characters and patches This significantly reduces visible LOD transitions and allows curves in level geometry to be more detailed. Given how modern GPUs (even integrated graphics) can handle lots of polygons well, this has very little performance cost nowadays. --- code/renderer/tr_init.c | 4 ++-- code/renderer2/tr_init.c | 4 ++-- code/renderervk/tr_init.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/renderer/tr_init.c b/code/renderer/tr_init.c index 1bc6dd546..d6f5e7b17 100644 --- a/code/renderer/tr_init.c +++ b/code/renderer/tr_init.c @@ -1523,7 +1523,7 @@ static void R_Register( void ) ri.Cvar_CheckRange( r_mapGreyScale, "-1", "1", CV_FLOAT ); ri.Cvar_SetDescription(r_mapGreyScale, "Desaturate world map textures only, works independently from \\r_greyscale, negative values only desaturate lightmaps."); - r_subdivisions = ri.Cvar_Get( "r_subdivisions", "4", CVAR_ARCHIVE_ND | CVAR_LATCH ); + r_subdivisions = ri.Cvar_Get( "r_subdivisions", "1", CVAR_ARCHIVE_ND | CVAR_LATCH ); ri.Cvar_SetDescription(r_subdivisions, "Distance to subdivide bezier curved surfaces. Higher values mean less subdivision and less geometric complexity."); r_maxpolys = ri.Cvar_Get( "r_maxpolys", XSTRING( MAX_POLYS ), CVAR_LATCH ); @@ -1537,7 +1537,7 @@ static void R_Register( void ) r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", CVAR_ARCHIVE_ND ); ri.Cvar_CheckRange( r_lodCurveError, "-1", "8192", CV_FLOAT ); ri.Cvar_SetDescription( r_lodCurveError, "Level of detail error on curved surface grids. Higher values result in better quality at a distance." ); - r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE_ND ); + r_lodbias = ri.Cvar_Get( "r_lodbias", "-2", CVAR_ARCHIVE_ND ); ri.Cvar_SetDescription( r_lodbias, "Sets the level of detail of in-game models:\n -2: Ultra (further delays LOD transition in the distance)\n -1: Very High (delays LOD transition in the distance)\n 0: High\n 1: Medium\n 2: Low" ); r_znear = ri.Cvar_Get( "r_znear", "4", CVAR_CHEAT ); ri.Cvar_CheckRange( r_znear, "0.001", "200", CV_FLOAT ); diff --git a/code/renderer2/tr_init.c b/code/renderer2/tr_init.c index f04a8a9ed..5268d451c 100644 --- a/code/renderer2/tr_init.c +++ b/code/renderer2/tr_init.c @@ -1152,7 +1152,7 @@ static void R_Register( void ) ri.Cvar_SetDescription( r_simpleMipMaps, "Whether or not to use a simple mipmapping algorithm or a more correct one:\n 0: off (proper linear filter)\n 1: on (for slower machines)" ); r_vertexLight = ri.Cvar_Get( "r_vertexLight", "0", CVAR_ARCHIVE | CVAR_LATCH ); ri.Cvar_SetDescription( r_vertexLight, "Set to 1 to use vertex light instead of lightmaps, collapse all multi-stage shaders into single-stage ones, might cause rendering artifacts." ); - r_subdivisions = ri.Cvar_Get ("r_subdivisions", "4", CVAR_ARCHIVE | CVAR_LATCH); + r_subdivisions = ri.Cvar_Get ("r_subdivisions", "1", CVAR_ARCHIVE | CVAR_LATCH); ri.Cvar_SetDescription(r_subdivisions, "Distance to subdivide bezier curved surfaces. Higher values mean less subdivision and less geometric complexity."); r_greyscale = ri.Cvar_Get("r_greyscale", "0", CVAR_ARCHIVE | CVAR_LATCH); ri.Cvar_CheckRange( r_greyscale, "0", "1", CV_FLOAT ); @@ -1257,7 +1257,7 @@ static void R_Register( void ) r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", CVAR_ARCHIVE ); ri.Cvar_CheckRange( r_lodCurveError, "-1", "8192", CV_FLOAT ); ri.Cvar_SetDescription( r_lodCurveError, "Level of detail error on curved surface grids. Higher values result in better quality at a distance." ); - r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE ); + r_lodbias = ri.Cvar_Get( "r_lodbias", "-2", CVAR_ARCHIVE ); ri.Cvar_SetDescription( r_lodbias, "Sets the level of detail of in-game models:\n -2: Ultra (further delays LOD transition in the distance)\n -1: Very High (delays LOD transition in the distance)\n 0: High\n 1: Medium\n 2: Low" ); r_flares = ri.Cvar_Get ("r_flares", "0", CVAR_ARCHIVE ); ri.Cvar_SetDescription( r_flares, "Enables corona effects on light sources." ); diff --git a/code/renderervk/tr_init.c b/code/renderervk/tr_init.c index 874628121..6d7d0cd22 100644 --- a/code/renderervk/tr_init.c +++ b/code/renderervk/tr_init.c @@ -1548,7 +1548,7 @@ static void R_Register( void ) ri.Cvar_CheckRange( r_mapGreyScale, "-1", "1", CV_FLOAT ); ri.Cvar_SetDescription(r_mapGreyScale, "Desaturate world map textures only, works independently from \\r_greyscale, negative values only desaturate lightmaps."); - r_subdivisions = ri.Cvar_Get( "r_subdivisions", "4", CVAR_ARCHIVE_ND | CVAR_LATCH ); + r_subdivisions = ri.Cvar_Get( "r_subdivisions", "1", CVAR_ARCHIVE_ND | CVAR_LATCH ); ri.Cvar_SetDescription(r_subdivisions, "Distance to subdivide bezier curved surfaces. Higher values mean less subdivision and less geometric complexity."); r_maxpolys = ri.Cvar_Get( "r_maxpolys", XSTRING( MAX_POLYS ), CVAR_LATCH ); @@ -1562,7 +1562,7 @@ static void R_Register( void ) r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", CVAR_ARCHIVE_ND ); ri.Cvar_CheckRange( r_lodCurveError, "-1", "8192", CV_FLOAT ); ri.Cvar_SetDescription( r_lodCurveError, "Level of detail error on curved surface grids. Higher values result in better quality at a distance." ); - r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE_ND ); + r_lodbias = ri.Cvar_Get( "r_lodbias", "-2", CVAR_ARCHIVE_ND ); ri.Cvar_SetDescription( r_lodbias, "Sets the level of detail of in-game models:\n -2: Ultra (further delays LOD transition in the distance)\n -1: Very High (delays LOD transition in the distance)\n 0: High\n 1: Medium\n 2: Low" ); r_flares = ri.Cvar_Get ("r_flares", "0", CVAR_ARCHIVE_ND ); ri.Cvar_SetDescription( r_flares, "Enables corona effects on light sources." );