Fix the probe flashing, and avatars.

DRTVWR-583
master
Jonathan "Geenz" Goodman 2023-08-24 12:51:19 -07:00
parent 0eba1396dc
commit 3160520249
4 changed files with 13 additions and 4 deletions

View File

@ -157,6 +157,11 @@ void LLHeroProbeManager::update()
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("hpmu - realtime");
// Probe 0 is always our mirror probe.
mProbes[0]->mOrigin = probe_pos;
bool radiance_pass = gPipeline.mReflectionMapManager.isRadiancePass();
gPipeline.mReflectionMapManager.mRadiancePass = true;
for (U32 j = 0; j < mProbes.size(); j++)
{
for (U32 i = 0; i < 6; ++i)
@ -164,6 +169,8 @@ void LLHeroProbeManager::update()
updateProbeFace(mProbes[j], i);
}
}
gPipeline.mReflectionMapManager.mRadiancePass = radiance_pass;
}
}
@ -180,7 +187,7 @@ void LLHeroProbeManager::updateProbeFace(LLReflectionMap* probe, U32 face)
// hacky hot-swap of camera specific render targets
gPipeline.mRT = &gPipeline.mAuxillaryRT;
probe->update(mRenderTarget.getWidth(), face);
probe->update(mRenderTarget.getWidth(), face, true);
gPipeline.mRT = &gPipeline.mMainRT;

View File

@ -49,7 +49,7 @@ LLReflectionMap::~LLReflectionMap()
}
}
void LLReflectionMap::update(U32 resolution, U32 face)
void LLReflectionMap::update(U32 resolution, U32 face, bool force_dynamic)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
mLastUpdateTime = gFrameTimeSeconds;
@ -63,7 +63,8 @@ void LLReflectionMap::update(U32 resolution, U32 face)
{
resolution /= 2;
}
gViewerWindow->cubeSnapshot(LLVector3(mOrigin), mCubeArray, mCubeIndex, face, getNearClip(), getIsDynamic());
gViewerWindow->cubeSnapshot(LLVector3(mOrigin), mCubeArray, mCubeIndex, face, getNearClip(), getIsDynamic() || force_dynamic);
}
void LLReflectionMap::autoAdjustOrigin()

View File

@ -52,7 +52,7 @@ public:
// update this environment map
// resolution - size of cube map to generate
void update(U32 resolution, U32 face);
void update(U32 resolution, U32 face, bool force_dynamic = false);
// for volume partition probes, try to place this probe in the best spot
void autoAdjustOrigin();

View File

@ -104,6 +104,7 @@ public:
private:
friend class LLPipeline;
friend class LLHeroProbeManager;
// initialize mCubeFree array to default values
void initCubeFree();