Added exposure controls to the ReflectionProbe component
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
This commit is contained in:
@@ -127,8 +127,8 @@ namespace AZ
|
||||
}
|
||||
else
|
||||
{
|
||||
// set exposure to 0.0 while baking the cubemap
|
||||
sceneSrg->SetConstant(m_iblExposureConstantIndex, 0.0f);
|
||||
// set exposure to the user specified value while baking the cubemap
|
||||
sceneSrg->SetConstant(m_iblExposureConstantIndex, m_bakeExposure);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,6 +162,7 @@ namespace AZ
|
||||
m_renderOuterSrg->SetConstant(m_reflectionRenderData->m_outerObbHalfLengthsRenderConstantIndex, m_outerObbWs.GetHalfLengths());
|
||||
m_renderOuterSrg->SetConstant(m_reflectionRenderData->m_innerObbHalfLengthsRenderConstantIndex, m_innerObbWs.GetHalfLengths());
|
||||
m_renderOuterSrg->SetConstant(m_reflectionRenderData->m_useParallaxCorrectionRenderConstantIndex, m_useParallaxCorrection);
|
||||
m_renderOuterSrg->SetConstant(m_reflectionRenderData->m_exposureConstantIndex, m_renderExposure);
|
||||
m_renderOuterSrg->SetImage(m_reflectionRenderData->m_reflectionCubeMapRenderImageIndex, m_cubeMapImage);
|
||||
m_renderOuterSrg->Compile();
|
||||
|
||||
@@ -172,6 +173,7 @@ namespace AZ
|
||||
m_renderInnerSrg->SetConstant(m_reflectionRenderData->m_outerObbHalfLengthsRenderConstantIndex, m_outerObbWs.GetHalfLengths());
|
||||
m_renderInnerSrg->SetConstant(m_reflectionRenderData->m_innerObbHalfLengthsRenderConstantIndex, m_innerObbWs.GetHalfLengths());
|
||||
m_renderInnerSrg->SetConstant(m_reflectionRenderData->m_useParallaxCorrectionRenderConstantIndex, m_useParallaxCorrection);
|
||||
m_renderInnerSrg->SetConstant(m_reflectionRenderData->m_exposureConstantIndex, m_renderExposure);
|
||||
m_renderInnerSrg->SetImage(m_reflectionRenderData->m_reflectionCubeMapRenderImageIndex, m_cubeMapImage);
|
||||
m_renderInnerSrg->Compile();
|
||||
|
||||
@@ -326,6 +328,17 @@ namespace AZ
|
||||
m_meshFeatureProcessor->SetVisible(m_visualizationMeshHandle, showVisualization);
|
||||
}
|
||||
|
||||
void ReflectionProbe::SetRenderExposure(float renderExposure)
|
||||
{
|
||||
m_renderExposure = renderExposure;
|
||||
m_updateSrg = true;
|
||||
}
|
||||
|
||||
void ReflectionProbe::SetBakeExposure(float bakeExposure)
|
||||
{
|
||||
m_bakeExposure = bakeExposure;
|
||||
}
|
||||
|
||||
const RHI::DrawPacket* ReflectionProbe::BuildDrawPacket(
|
||||
const Data::Instance<RPI::ShaderResourceGroup>& srg,
|
||||
const RPI::Ptr<RPI::PipelineStateForDraw>& pipelineState,
|
||||
|
||||
@@ -61,6 +61,7 @@ namespace AZ
|
||||
RHI::ShaderInputNameIndex m_outerObbHalfLengthsRenderConstantIndex = "m_outerObbHalfLengths";
|
||||
RHI::ShaderInputNameIndex m_innerObbHalfLengthsRenderConstantIndex = "m_innerObbHalfLengths";
|
||||
RHI::ShaderInputNameIndex m_useParallaxCorrectionRenderConstantIndex = "m_useParallaxCorrection";
|
||||
RHI::ShaderInputNameIndex m_exposureConstantIndex = "m_exposure";
|
||||
RHI::ShaderInputNameIndex m_reflectionCubeMapRenderImageIndex = "m_reflectionCubeMap";
|
||||
};
|
||||
|
||||
@@ -106,6 +107,14 @@ namespace AZ
|
||||
// enables or disables rendering of the visualization sphere
|
||||
void ShowVisualization(bool showVisualization);
|
||||
|
||||
// the exposure to use when rendering meshes with this probe's cubemap
|
||||
void SetRenderExposure(float renderExposure);
|
||||
float GetRenderExposure() const { return m_renderExposure; }
|
||||
|
||||
// the exposure to use when baking the probe cubemap
|
||||
void SetBakeExposure(float bakeExposure);
|
||||
float GetBakeExposure() const { return m_bakeExposure; }
|
||||
|
||||
private:
|
||||
|
||||
AZ_DISABLE_COPY_MOVE(ReflectionProbe);
|
||||
@@ -157,6 +166,8 @@ namespace AZ
|
||||
RHI::ConstPtr<RHI::DrawPacket> m_blendWeightDrawPacket;
|
||||
RHI::ConstPtr<RHI::DrawPacket> m_renderOuterDrawPacket;
|
||||
RHI::ConstPtr<RHI::DrawPacket> m_renderInnerDrawPacket;
|
||||
float m_renderExposure = 0.0f;
|
||||
float m_bakeExposure = 0.0f;
|
||||
bool m_updateSrg = false;
|
||||
|
||||
const RHI::DrawItemSortKey InvalidSortKey = static_cast<RHI::DrawItemSortKey>(-1);
|
||||
|
||||
+12
@@ -283,6 +283,18 @@ namespace AZ
|
||||
probe->ShowVisualization(showVisualization);
|
||||
}
|
||||
|
||||
void ReflectionProbeFeatureProcessor::SetRenderExposure(const ReflectionProbeHandle& probe, float renderExposure)
|
||||
{
|
||||
AZ_Assert(probe.get(), "SetRenderExposure called with an invalid handle");
|
||||
probe->SetRenderExposure(renderExposure);
|
||||
}
|
||||
|
||||
void ReflectionProbeFeatureProcessor::SetBakeExposure(const ReflectionProbeHandle& probe, float bakeExposure)
|
||||
{
|
||||
AZ_Assert(probe.get(), "SetBakeExposure called with an invalid handle");
|
||||
probe->SetBakeExposure(bakeExposure);
|
||||
}
|
||||
|
||||
void ReflectionProbeFeatureProcessor::FindReflectionProbes(const Vector3& position, ReflectionProbeVector& reflectionProbes)
|
||||
{
|
||||
reflectionProbes.clear();
|
||||
|
||||
Reference in New Issue
Block a user