diff options
author | Rye Mutt <rye@alchemyviewer.org> | 2024-08-27 22:47:32 -0400 |
---|---|---|
committer | Rye Mutt <rye@alchemyviewer.org> | 2024-08-29 17:24:50 -0400 |
commit | 958afaa7a7bfb1217bbffee3fe562f21901277ac (patch) | |
tree | 64a878d5c747ce9d848ad3b993b0eb24298ef65c /indra/newview/pipeline.h | |
parent | 3a7374892945a233a9eaa3a88c94a984873373d3 (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.h | 13 |
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; |