summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llreflectionmapmanager.cpp60
-rw-r--r--indra/newview/llreflectionmapmanager.h2
2 files changed, 23 insertions, 39 deletions
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp
index 783ff69073..fe3ea15352 100644
--- a/indra/newview/llreflectionmapmanager.cpp
+++ b/indra/newview/llreflectionmapmanager.cpp
@@ -329,6 +329,28 @@ void LLReflectionMapManager::update()
// restore "isRadiancePass"
mRadiancePass = radiance_pass;
}
+
+
+ {
+ LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("rmmu - realtime");
+ // update the closest dynamic probe realtime
+ // should do a full irradiance pass on "odd" frames and a radiance pass on "even" frames
+ mHeroProbe->autoAdjustOrigin();
+
+ // store and override the value of "isRadiancePass" -- parts of the render pipe rely on "isRadiancePass" to set
+ // lighting values etc
+ bool radiance_pass = isRadiancePass();
+ mRadiancePass = mRealtimeRadiancePass;
+ for (U32 i = 0; i < 6; ++i)
+ {
+ updateProbeFace(mHeroProbe, i, mHeroProbeResolution, mHeroArray);
+ }
+
+ mRealtimeRadiancePass = !mRealtimeRadiancePass;
+
+ // restore "isRadiancePass"
+ mRadiancePass = radiance_pass;
+ }
static LLCachedControl<F32> sUpdatePeriod(gSavedSettings, "RenderDefaultProbeUpdatePeriod", 2.f);
if ((gFrameTimeSeconds - mDefaultProbe->mLastUpdateTime) < sUpdatePeriod)
@@ -361,28 +383,6 @@ void LLReflectionMapManager::update()
oldestOccluded->autoAdjustOrigin();
oldestOccluded->mLastUpdateTime = gFrameTimeSeconds;
}
-
- if (mHeroProbe != nullptr)
- {
- LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("rmmu - realtime");
- // update the closest dynamic probe realtime
- // should do a full irradiance pass on "odd" frames and a radiance pass on "even" frames
- mHeroProbe->autoAdjustOrigin();
-
- // store and override the value of "isRadiancePass" -- parts of the render pipe rely on "isRadiancePass" to set
- // lighting values etc
- bool radiance_pass = isRadiancePass();
- mRadiancePass = mRealtimeRadiancePass;
- for (U32 i = 0; i < 6; ++i)
- {
- updateProbeFace(mHeroProbe, i, mProbeResolution, mHeroArray);
- }
- mRealtimeRadiancePass = !mRealtimeRadiancePass;
-
- // restore "isRadiancePass"
- mRadiancePass = radiance_pass;
- }
-
}
LLReflectionMap* LLReflectionMapManager::addProbe(LLSpatialGroup* group)
@@ -576,21 +576,6 @@ void LLReflectionMapManager::doProbeUpdate()
}
}
-void LLReflectionMapManager::doHeroProbeUpdate()
-{
- LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
- llassert(mHeroProbe != nullptr);
-
- touch_default_probe(mHeroProbe);
-
- for (int i = 0; i < 6; i++)
- {
- gPipeline.mRT = &gPipeline.mAuxillaryRT;
- mHeroProbe->update(mHeroProbeResolution, i);
- gPipeline.mRT = &gPipeline.mMainRT;
- }
-}
-
// Do the reflection map update render passes.
// For every 12 calls of this function, one complete reflection probe radiance map and irradiance map is generated
// First six passes render the scene with direct lighting only into a scratch space cube map at the end of the cube map array and generate
@@ -1190,6 +1175,7 @@ void LLReflectionMapManager::setUniforms()
updateUniforms();
}
glBindBufferBase(GL_UNIFORM_BUFFER, 1, mUBO);
+ glBindBufferBase(GL_UNIFORM_BUFFER, 1, mHeroUBO);
}
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h
index 1275617e0a..81b0ef8ed8 100644
--- a/indra/newview/llreflectionmapmanager.h
+++ b/indra/newview/llreflectionmapmanager.h
@@ -146,8 +146,6 @@ 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, U32 probeResolution, LLPointer<LLCubeMapArray> cubeArray);