summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.h
diff options
context:
space:
mode:
authorRye Mutt <rye@alchemyviewer.org>2024-08-27 22:47:32 -0400
committerRye Mutt <rye@alchemyviewer.org>2024-08-29 17:24:50 -0400
commit958afaa7a7bfb1217bbffee3fe562f21901277ac (patch)
tree64a878d5c747ce9d848ad3b993b0eb24298ef65c /indra/newview/pipeline.h
parent3a7374892945a233a9eaa3a88c94a984873373d3 (diff)
Integrate SMAA and rework post process chain for better visual quality
Add SMAA buffer generation passes Add quality levels for both FXAA and SMAA Separate gamma correction and tonemapping for effects that require linear-but-tonemapped inputs Move application of noise to final render pass to screen to avoid damaging other post process effects
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r--indra/newview/pipeline.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 1c87b71d06..3687ab32fa 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -129,7 +129,7 @@ public:
//attempt to allocate screen buffers at resX, resY
//returns true if allocation successful, false otherwise
- bool allocateScreenBuffer(U32 resX, U32 resY, U32 samples);
+ bool allocateScreenBufferInternal(U32 resX, U32 resY);
bool allocateShadowBuffer(U32 resX, U32 resY);
// rebuild all LLVOVolume render batches
@@ -155,10 +155,13 @@ public:
void copyScreenSpaceReflections(LLRenderTarget* src, LLRenderTarget* dst);
void generateLuminance(LLRenderTarget* src, LLRenderTarget* dst);
void generateExposure(LLRenderTarget* src, LLRenderTarget* dst, bool use_history = true);
+ void tonemap(LLRenderTarget* src, LLRenderTarget* dst);
void gammaCorrect(LLRenderTarget* src, LLRenderTarget* dst);
void generateGlow(LLRenderTarget* src);
void applyCAS(LLRenderTarget* src, LLRenderTarget* dst);
void applyFXAA(LLRenderTarget* src, LLRenderTarget* dst);
+ void generateSMAABuffers(LLRenderTarget* src);
+ void applySMAA(LLRenderTarget* src, LLRenderTarget* dst);
void renderDoF(LLRenderTarget* src, LLRenderTarget* dst);
void copyRenderTarget(LLRenderTarget* src, LLRenderTarget* dst);
void combineGlow(LLRenderTarget* src, LLRenderTarget* dst);
@@ -726,6 +729,7 @@ public:
// FXAA helper target
LLRenderTarget mFXAAMap;
+ LLRenderTarget mSMAABlendBuffer;
// render ui to buffer target
LLRenderTarget mUIScreen;
@@ -782,6 +786,11 @@ public:
U32 mTrueNoiseMap;
U32 mLightFunc;
+ //smaa
+ U32 mSMAAAreaMap = 0;
+ U32 mSMAASearchMap = 0;
+ U32 mSMAASampleMap = 0;
+
LLColor4 mSunDiffuse;
LLColor4 mMoonDiffuse;
LLVector4 mSunDir;
@@ -989,7 +998,7 @@ public:
static bool WindLightUseAtmosShaders;
static bool RenderDeferred;
static F32 RenderDeferredSunWash;
- static U32 RenderFSAASamples;
+ static U32 RenderFSAAType;
static U32 RenderResolutionDivisor;
static bool RenderUIBuffer;
static S32 RenderShadowDetail;