summaryrefslogtreecommitdiff
path: root/indra/newview/llreflectionmapmanager.h
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@geenzo.com>2023-06-27 20:01:52 -0700
committerJonathan "Geenz" Goodman <geenz@geenzo.com>2023-06-27 20:01:52 -0700
commitd8dd4d9c0cd4554704cbe15b5502f4d87a4674ad (patch)
treea359cdd5b39994cf04a4370718bcaeb8a73a9613 /indra/newview/llreflectionmapmanager.h
parentdb485adbeb1c7a7d64fbddd124f7f4c73214ef99 (diff)
Just about got hero reflection maps working.
DRTVWR-583
Diffstat (limited to 'indra/newview/llreflectionmapmanager.h')
-rw-r--r--indra/newview/llreflectionmapmanager.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h
index 5a3901cae9..2ca9a8d598 100644
--- a/indra/newview/llreflectionmapmanager.h
+++ b/indra/newview/llreflectionmapmanager.h
@@ -125,11 +125,15 @@ private:
// render target for cube snapshots
// used to generate mipmaps without doing a copy-to-texture
LLRenderTarget mRenderTarget;
+
+ LLRenderTarget mHeroRenderTarget;
std::vector<LLRenderTarget> mMipChain;
// storage for reflection probe radiance maps (plus two scratch space cubemaps)
LLPointer<LLCubeMapArray> mTexture;
+
+ LLPointer<LLCubeMapArray> mHeroArray;
// vertex buffer for pushing verts to filter shaders
LLPointer<LLVertexBuffer> mVertexBuffer;
@@ -142,9 +146,11 @@ private:
// perform an update on the currently updating Probe
void doProbeUpdate();
+
+ void doHeroProbeUpdate();
// update the specified face of the specified probe
- void updateProbeFace(LLReflectionMap* probe, U32 face);
+ void updateProbeFace(LLReflectionMap* probe, U32 face, U32 probeResolution);
// list of active reflection maps
std::vector<LLPointer<LLReflectionMap> > mProbes;
@@ -157,6 +163,9 @@ private:
// handle to UBO
U32 mUBO = 0;
+
+ // Hero UBO
+ U32 mHeroUBO = 0;
// list of maps being used for rendering
std::vector<LLReflectionMap*> mReflectionMaps;
@@ -176,12 +185,16 @@ private:
bool mRealtimeRadiancePass = false;
LLPointer<LLReflectionMap> mDefaultProbe; // default reflection probe to fall back to for pixels with no probe influences (should always be at cube index 0)
+
+ LLPointer<LLReflectionMap> mHeroProbe;
// number of reflection probes to use for rendering
U32 mReflectionProbeCount;
// resolution of reflection probes
U32 mProbeResolution = 128;
+
+ U32 mHeroProbeResolution = 512;
// maximum LoD of reflection probes (mip levels - 1)
F32 mMaxProbeLOD = 6.f;