Set skybox exposure during ReflectionProbe bake

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
This commit is contained in:
dmcdiar
2021-11-08 17:53:03 -07:00
parent be934a4b32
commit dcb3ac4337
3 changed files with 15 additions and 10 deletions
@@ -120,15 +120,17 @@ namespace AZ
m_scene->RemoveRenderPipeline(m_environmentCubeMapPipelineId);
m_environmentCubeMapPass = nullptr;
// restore exposure
sceneSrg->SetConstant(m_iblExposureConstantIndex, m_previousExposure);
// restore exposures
sceneSrg->SetConstant(m_globalIblExposureConstantIndex, m_previousGlobalIblExposure);
sceneSrg->SetConstant(m_skyBoxExposureConstantIndex, m_previousSkyBoxExposure);
m_buildingCubeMap = false;
}
else
{
// set exposure to the user specified value while baking the cubemap
sceneSrg->SetConstant(m_iblExposureConstantIndex, m_bakeExposure);
// set exposures to the user specified value while baking the cubemap
sceneSrg->SetConstant(m_globalIblExposureConstantIndex, m_bakeExposure);
sceneSrg->SetConstant(m_skyBoxExposureConstantIndex, m_bakeExposure);
}
}
@@ -305,9 +307,10 @@ namespace AZ
const RPI::Ptr<RPI::ParentPass>& rootPass = environmentCubeMapPipeline->GetRootPass();
rootPass->AddChild(m_environmentCubeMapPass);
// store the current IBL exposure value
// store the current IBL exposure values
Data::Instance<RPI::ShaderResourceGroup> sceneSrg = m_scene->GetShaderResourceGroup();
m_previousExposure = sceneSrg->GetConstant<float>(m_iblExposureConstantIndex);
m_previousGlobalIblExposure = sceneSrg->GetConstant<float>(m_globalIblExposureConstantIndex);
m_previousSkyBoxExposure = sceneSrg->GetConstant<float>(m_skyBoxExposureConstantIndex);
m_scene->AddRenderPipeline(environmentCubeMapPipeline);
}