From 400e2f1b0ee35821c52994aabdd7b533c9bc7ee4 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 2 Jan 2026 21:30:14 +0100 Subject: [PATCH] Fix DDGI flickering on floors aligned to axis on value `0` (eg. floor) --- Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp index 726c76410..bdb9bbe2a 100644 --- a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp +++ b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp @@ -11,6 +11,7 @@ #include "Engine/Core/Math/Quaternion.h" #include "Engine/Core/Config/GraphicsSettings.h" #include "Engine/Engine/Engine.h" +#include "Engine/Engine/Units.h" #include "Engine/Content/Content.h" #include "Engine/Debug/DebugDraw.h" #include "Engine/Graphics/GPUContext.h" @@ -371,6 +372,7 @@ bool DynamicDiffuseGlobalIlluminationPass::RenderInner(RenderContext& renderCont const float viewOriginSnapping = cascadeProbesSpacing; viewOrigin = Float3::Floor(viewOrigin / viewOriginSnapping) * viewOriginSnapping; //viewOrigin = Float3::Zero; + viewOrigin -= UNITS_TO_METERS(0.5f); // Bias to avoid precision issues (eg. if floor mesh is exactly at Y=0) viewOrigins[cascadeIndex] = viewOrigin; }