Static Light Source Radius introduces artifacts in Reflection Capture

For static light sources, the Light Source Radius prevents the calculation of reflections in that region.

Point lights generate a white circular area while spot lights generate a black circular area. The areas surfaces are proportional to the Light Source Radius setting.

Here is a demo screenshot in which I activated the reflection view. These spots show up also in game, not only in the editor.

The spot lights are marked in yellow, the point light in red and the reflection capture in blue. There’s only one reflection capture in the scene.

In order to reproduce this you have to set a light source to static, put the attenuation radius to something above 500 and the source radius to something above 30, so that is visible (here I used above 50). After this, build the lighting and update the reflection capture.

Unfortunately this is not all. Really big problems appear when the reflection capture is inside the Light Source Radius.

I know that the second case doesn’t happen too often, but the first one does! I’ve spent hours to figure out why I have seeing the black spots. I have not tested this in previews versions of the engine.

Hi Andrei -

The White Circles you are seeing are representations of the actual point light in the world, the same way you would see a reflection of a bulb in a real world reflection. The sphere’s size is based on the source radius of the contributing source. For the second case, this behavior would be expected based on real world results.

The Black Circles you are seeing are actually the same thing for the spotlights, but since spotlights only cast in one direction, the sphere reflection actor will not calculate a value for that source if the reflection is on the off side of the spotlights source. You can see my discussion on this topic a bit more here: Static light reflection problem - Rendering - Unreal Engine Forums

I have a few suggestions which should help clear up some if not all of your issues. For Spotlights try to reduce the Source Radius to 0 and use the Inner and Outer Angles to create the falloff you might want on your light, this will eliminate or nearly eliminate the black circles in your reflection capture. Also for an interior scene light you are showing above you may want to use the Rectangular Reflection Capture Actor for the scene which generates the cubemap used for the reflections in a slightly different manner and works better for rectilinear interior environments.

Also I highly recommend taking a moment to look over the reflection documentation linked below, in your scene it might be beneficial to have smaller sphere reflection capture actors in areas where the look of the reflection is most important, the theory and implementation of this is talked about in the documentation:

https://docs.unrealengine.com/latest/INT/Resources/Showcases/Reflections/index.html

Thank You

Eric Ketchum

I had already read all those materials. Maybe you should indicate this somewhere, so people know it’s a “normal behavior”.
Thank you for your answer!

Hey Eric,

Does source radius have any effect on static lights other than to inject it in the reflection capture? Like for example, does a bigger source radius soften the shadows or anything?

I’m trying to eliminate these from the reflection captures in a scene without messing up anything else.

(Edit: from testing, it does seem to soften shadows. Is there any option to exclude these without losing the other affects of radius/length? As I understand the point of source radius, it is to modify analytic specular.

For static lights, while having source radius in the reflection capture does mimic stationary/movable analytic specular, it is almost never what you want, because you are usually using static lights to fake/enhance bounce lighting, or to simulate emissive lighting. To work around this I’ve set visibility to off for static lights during reflection capture, but set it to on during the bake. It makes many scenes look many times better (Shooter Game, for example), and makes the reflection captures much better match up screenspace reflections.

Can we get an option to hide source radius from reflection captures, either globally, on the lights, or on the capture actors? I don’t know which approach would be best, but this is very detrimental to the look of some scenes.)

I found a work around, if you make static lights not visible, they still bake, but the source radius stuff doesn’t show up in captures. Probably should be added to the lighting documentation. I was always confused at why there is both a “visible” and “affects world”, and this may explain it. Maybe add to the “affects world” documentation to clarify the distinction between and visible?