Skip to content

Commit 2eb8150

Browse files
committed
renderer: make FXAA configurable with cvars
1 parent 004318a commit 2eb8150

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

src/engine/renderer/gl_shader.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,10 @@ static std::string GenEngineConstants() {
804804
{
805805
AddDefine( str, "r_FXAA", 1 );
806806

807+
AddDefine( str, "r_FXAASubPix", r_FXAASubPix.Get() );
808+
AddDefine( str, "r_FXAAEdgeThreshold", r_FXAAEdgeThreshold.Get() );
809+
AddDefine( str, "r_FXAAEdgeThresholdMin", r_FXAAEdgeThresholdMin.Get() );
810+
807811
if ( r_showFXAA.Get() )
808812
{
809813
AddDefine( str, "r_showFXAA", 1 );

src/engine/renderer/glsl_source/fxaa_fp.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ void main()
7171
vec4(0.0), //not used
7272
vec4(0.0), //not used
7373
vec4(0.0), //not used
74-
0.75, //fxaaQualitySubpix
75-
0.166, //fxaaQualityEdgeThreshold
76-
0.0625, //fxaaQualityEdgeThresholdMin
74+
r_FXAASubPix, //fxaaQualitySubpix
75+
r_FXAAEdgeThreshold, //fxaaQualityEdgeThreshold
76+
r_FXAAEdgeThresholdMin, //fxaaQualityEdgeThresholdMin
7777
0.0, //not used
7878
0.0, //not used
7979
0.0, //not used

src/engine/renderer/tr_init.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,12 @@ Cvar::Cvar<int> r_rendererAPI( "r_rendererAPI", "Renderer API: 0: OpenGL, 1: Vul
289289
Cvar::Cvar<bool> r_showLuminance( "r_showLuminance", "Show luminance", Cvar::CHEAT, false );
290290

291291
Cvar::Cvar<bool> r_FXAA( "r_FXAA", "Fast approximate anti-aliasing", Cvar::NONE, false );
292+
293+
// Values taken from comments in fxaa3_11_fp.glsl.
294+
Cvar::Range<Cvar::Cvar<float>> r_FXAASubPix( "r_FXAASubPix", "0: off, 0.25: almost off, 0.5: lower limit, 0.75, default, 1: softer", Cvar::NONE, 0.75f, 0.0f, 1.0f );
295+
Cvar::Range<Cvar::Cvar<float>> r_FXAAEdgeThreshold( "r_FXAAEdgeThreshold", "0.063: overkill and slower, 0.125: high quality, 0.166: default, 0.250: low quality, 0.333 too little and faster", Cvar::NONE, 0.166f, 0.063f, 0.333f );
296+
Cvar::Range<Cvar::Cvar<float>> r_FXAAEdgeThresholdMin( "r_FXAAEdgeThresholdMin", "0.0312: visible limit, 0.0625: high quality, 0.0833: upper limit", Cvar::NONE, 0.0625f, 0.0312f, 0.0833f );
297+
292298
Cvar::Cvar<bool> r_showFXAA( "r_showFXAA", "Show pixels modified by FXAA", Cvar::CHEAT, false );
293299

294300
Cvar::Range<Cvar::Cvar<int>> r_MSAA( "r_MSAA", "Amount of MSAA samples. 0 to disable", Cvar::NONE, 0, 0, 64 );
@@ -1216,6 +1222,9 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
12161222
Cvar::Latch( r_showLuminance );
12171223

12181224
Cvar::Latch( r_FXAA );
1225+
Cvar::Latch( r_FXAASubPix );
1226+
Cvar::Latch( r_FXAAEdgeThreshold );
1227+
Cvar::Latch( r_FXAAEdgeThresholdMin );
12191228
Cvar::Latch( r_showFXAA );
12201229

12211230
Cvar::Latch( r_MSAA );

src/engine/renderer/tr_local.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2783,6 +2783,9 @@ enum
27832783
extern Cvar::Cvar<bool> r_showLuminance;
27842784

27852785
extern Cvar::Cvar<bool> r_FXAA;
2786+
extern Cvar::Range<Cvar::Cvar<float>> r_FXAASubPix;
2787+
extern Cvar::Range<Cvar::Cvar<float>> r_FXAAEdgeThreshold;
2788+
extern Cvar::Range<Cvar::Cvar<float>> r_FXAAEdgeThresholdMin;
27862789
extern Cvar::Cvar<bool> r_showFXAA;
27872790

27882791
extern Cvar::Range<Cvar::Cvar<int>> r_MSAA;

0 commit comments

Comments
 (0)