Add BounceIntensity to Global Illumination settings

This commit is contained in:
Wojciech Figat
2022-06-30 15:27:31 +02:00
parent 27515585db
commit 4007c5e29c
5 changed files with 22 additions and 11 deletions

View File

@@ -1000,12 +1000,12 @@ bool GlobalSurfaceAtlasPass::Render(RenderContext& renderContext, GPUContext* co
// Draw draw indirect light from Global Illumination
if (renderContext.View.Flags & ViewFlags::GI)
{
switch (renderContext.List->Settings.GlobalIllumination.Mode)
switch (giSettings.Mode)
{
case GlobalIlluminationMode::DDGI:
{
DynamicDiffuseGlobalIlluminationPass::BindingData bindingDataDDGI;
if (!DynamicDiffuseGlobalIlluminationPass::Instance()->Get(renderContext.Buffers, bindingDataDDGI))
if (giSettings.BounceIntensity > ZeroTolerance && !DynamicDiffuseGlobalIlluminationPass::Instance()->Get(renderContext.Buffers, bindingDataDDGI))
{
_vertexBuffer->Clear();
for (const auto& e : surfaceAtlasData.Objects)
@@ -1025,6 +1025,7 @@ bool GlobalSurfaceAtlasPass::Render(RenderContext& renderContext, GPUContext* co
break;
PROFILE_GPU_CPU("DDGI");
data.DDGI = bindingDataDDGI.Constants;
data.Light.Radius = giSettings.BounceIntensity / bindingDataDDGI.Constants.IndirectLightingIntensity; // Reuse for smaller CB
context->BindSR(5, bindingDataDDGI.ProbesState);
context->BindSR(6, bindingDataDDGI.ProbesDistance);
context->BindSR(7, bindingDataDDGI.ProbesIrradiance);