Rect Lights that intersect geometry can produce NaN pixels in SceneColor, which will affect bloom, FXAA, and other future passes. This can lead to large visible artifacts.

The NaN values are produced by the pass `Light::StandardDefered`, and come from the function "RectIrradianceLambert(...)" in RectLight.ush. "rsqrt(0)" results in an INF value, which, when used in a cross product, becomes NaN.

Steps to Reproduce

1. Download the Licensee's test case and open (see addl info URL)
2. Move the camera and observe the black square-shaped flickers at where the edge of the rect lights intersect with the floor.
3. If you position the camera just right, you can get them to remain on screen. Any tiny change to the view will affect this.
4. Observe through a GPU Dump that the pixel value of the black square is NaN, and are being propagated from SceneColor, and created in the render pass `Light::StandardDeferred`.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-216276 in the post.

Login to Vote

ComponentUE - Graphics Features
Affects Versions5.45.4.1
Target Fix5.5
Fix Commit33789265
CreatedMay 31, 2024
ResolvedJun 3, 2024
UpdatedJun 3, 2024
View Jira Issue