shift capturing from a globalMacro to a sceneRenderstate S32

lets us ditch shader recompilation so that can be done on the fly without hitches, though does cost us a per-shader const for objects and postfx
This commit is contained in:
AzaezelX 2024-04-16 13:51:41 -05:00
parent 71e0626ec2
commit fe26ffc375
13 changed files with 69 additions and 101 deletions

View file

@ -503,47 +503,13 @@ void RenderProbeMgr::reloadTextures()
void RenderProbeMgr::preBake()
{
RenderProbeMgr::smBakeReflectionProbes = true;
GFXShader::addGlobalMacro("CAPTURING", String("1"));
//Con::setVariable("$Probes::Capturing", "1");
mRenderMaximumNumOfLights = AdvancedLightBinManager::smMaximumNumOfLights;
mRenderUseLightFade = AdvancedLightBinManager::smUseLightFade;
AdvancedLightBinManager::smMaximumNumOfLights = -1;
AdvancedLightBinManager::smUseLightFade = false;
//kickstart rendering
LightManager* lm = LIGHTMGR;
if (lm)
{
SceneManager* sm = lm->getSceneManager();
if (sm && sm->getContainer() == &gClientContainer)
{
lm->deactivate();
lm->activate(sm);
}
}
Con::setBoolVariable("$ReflectionProbes::Capturing", RenderProbeMgr::smBakeReflectionProbes);
}
void RenderProbeMgr::postBake()
{
RenderProbeMgr::smBakeReflectionProbes = false;
GFXShader::addGlobalMacro("CAPTURING", String("0"));
//Con::setVariable("$Probes::Capturing", "0");
AdvancedLightBinManager::smMaximumNumOfLights = mRenderMaximumNumOfLights;
AdvancedLightBinManager::smUseLightFade = mRenderUseLightFade;
//kickstart rendering
LightManager* lm = LIGHTMGR;
if (lm)
{
SceneManager* sm = lm->getSceneManager();
if (sm && sm->getContainer() == &gClientContainer)
{
lm->deactivate();
lm->activate(sm);
}
}
Con::setBoolVariable("$ReflectionProbes::Capturing", RenderProbeMgr::smBakeReflectionProbes);
}
void RenderProbeMgr::bakeProbe(ReflectionProbe* probe)