Greetings,
I have an issue concerning the behavior in the path tracing mode and rendering via path tracer. For some reason, in places with very low light, the directional light does change the behavior of other lights affecting actors and static meshes in the scene. For some unknown reason, when the directional light is affecting world and is visible, it affects objects with pathtracing that should be unreachable by the directional light.
Our concrete usecase is a level/scene in a shot with an interior, that does have sun rays and shafts coming through a window and otherwise has very little light. This effect having the directional light there however does make the renders either look grainy or just a little different and they take much longer to render even though the number of ray traced bounces was set to 1.
We of course know about the light channel functionality, but sometimes we need all lights to affect the whole scene no matter the cost. Is there an explanation for this behavior of the directional light?
lightsdebug1.png(124 KB)
lightsdebug2.png(205 KB)
Steps to Reproduce
Create an empty scene
Add a hollow box made out of cubes (or any other assets)
Place a dicrectional light into the scene
Place an arbitrary light into the hollow box (e.g. pointlight)
Place an asset or a primitive into the hollow cube so it is illuminated by the light
Put in an unbounded post process volume into the scene
- set ray tracing bounces to 1 and other numbers to test this
Keep turning on and off the visibilty of the directional light (or affect world checkbox)
The repro has the level and the prepared sequence in the Content folder.
Hello,
Thank you for reaching out.
I’ve been assigned this issue, and we will be looking into this noise for you.
Hello,
We were unable to reproduce the increased noise your images showed. Both with and without the Directional Light, the fully rendered image did not the noise you are seeing.
The test project shows denoising is enabled, and NNEDenoiser plugin enabled. Are you disabling the denoiser in your tests? This could lead to the results you are seeing.
With an additional light, all pixels have to trace towards it, because it covers the entire scene. This will result in more rays traced per pixel, even with bounces set to 1.
Please let us know if this helps.
Hello,
You are specifically turning off the solutions that solve the noise resulting from usage of limited samples.
Multiple samples are used to smooth out lighting from multiple sources. If each pixel can only send out one ray to check for a light, and there are multiple lights to choose from, all heuristics will result in artifacts.
What artifacts are preventing you from using the denoiser? If we can help you solve that, perhaps then this noise issue can be solved by using the denoiser.
Sorry, the effect I am talking about was not put to you clearly unfortunately. I will send you another repro of the issue.
Firstly, we need the denoiser turned off to avoid artefacts.
Secondly, to demonstrate this only, we put the samples per pixel to 1 in the post process volume.
If you put in two lights next to each other (arbitrary), you will see the effect if they are overlapping.
Our guess it is happens due to the logic in Engine\Shaders\Private\PathTracing\PathTracingCore.ush, PathTracingKernel, in the method void SelectLight(float RandSample, int NumLights, inout float LightPickingCdf[RAY_TRACING_LIGHT_COUNT_MAXIMUM], out uint LightId, out float LightPickPdf), where one of the lights gets picked. Then it is sampled instead of all the lights - which works great in high sampled renders, but in our opinion it would not need as many samples if done other way. Is there a way to customize it so the grainy black area is not there in one sampled one bounce render? I am sending the repo in this message, will send screenshots in following.
GrainLights.zip(42.9 KB)
r.PathTracing.Visualize set to LightGridCount
Screenshot 2026-03-03 144122.png(747 KB)