Implemented registration of probes to avoid rendering all probes when unneeded.

This commit is contained in:
Areloch 2018-11-19 01:18:09 -06:00
parent ecd47830ca
commit c4a4fe5304
5 changed files with 26 additions and 3 deletions

View file

@ -198,6 +198,9 @@ void RenderProbeMgr::render( SceneRenderState *state )
if (!ProbeRenderInst::all.size())
return;
if (PROBEMGR->mRegisteredProbes.empty())
return;
if (!ProbeManager::smRenderReflectionProbes)
return;
@ -255,9 +258,9 @@ void RenderProbeMgr::render( SceneRenderState *state )
ProbeManager::SkylightMaterialInfo* skylightMat = PROBEMGR->getSkylightMaterial();
ProbeManager::ReflectProbeMaterialInfo* reflProbeMat = PROBEMGR->getReflectProbeMaterial();
for (U32 i = 0; i < ProbeRenderInst::all.size(); i++)
for (U32 i = 0; i < PROBEMGR->mRegisteredProbes.size(); i++)
{
ProbeRenderInst* curEntry = ProbeRenderInst::all[i];
ProbeRenderInst* curEntry = ProbeRenderInst::all[PROBEMGR->mRegisteredProbes[i]];
if (!curEntry->mIsEnabled)
continue;
@ -321,6 +324,9 @@ void RenderProbeMgr::render( SceneRenderState *state )
}
}
//And clean us up
PROBEMGR->mRegisteredProbes.clear();
probeLightingTargetRef->resolve();
GFX->popActiveRenderTarget();