Static lights lose colored specular on metallic materials, stationary lights work fine

I’m currently building an environment with heavy use of metallic materials and I’ve noticed that static lights lose all color information from colored lights when baked. Stationary lights work just fine. I realize the specular limitations of static lights vs. stationary lights, and that technically a metallic surface has no diffuse contribution, but there is some type of approximation happening, it’s just not red. I’m using vers 4.4 and did a test case in the Reflections demo to illustrate. I pulled over one of the trash cans in the scene, added two red spotlights, one static, one stationary. Is this a known issue/limitation? If so, is there an ETA for a fix?

Hey mbattaglia3d -

This is a known limitation to the use of physical-based materials. The Static Lights are diffuse based only and will not take or contribute to a specular element like the Metallic and Roughness inputs. It is not on the roadmap currently to add an additional specular component to the static lights in the foreseeable future.

Thank You

Eric Ketchum

Hi Eric,

Thanks for your answer. I’m trying to find the compromises when using static vs. stationary lights. In my above example I thought I was seeing SOME type of lighting contribution on the statically lit version, but that it just wasn’t colored correctly. After playing around some more I think visually all I saw was the reflection environment captures working on the trash can. If that assumption is correct, that would mean a metallic surface will only be “lit” by a true deferred light (stationary or movable), a reflection capture actor, or screenspace reflections. Is that an accurate statement? If so, as a wild and possibly dumb idea, would it be possible for reflection capture actors to eventually “see” static lights?

Thanks

Hey -

You are correct. And it is not weird or dumb as that is exactly how reflection actors work currently.

I threw together a test map to better illustrate the point, but it is important to remember that the reflection actors take a capture within the bounds of the actor along the sphere curvature (or box) and transfer that capture as a cubemap to the materials based on their metallic and roughness settings.

Hopefully this will help explain how it works but if you have any further questions please let me know-

Eric Ketchum

Hi Eric,

Thanks for the breakdown. I understand how the reflection captures are working, but the limitation of the current system is that there is no reflection contribution from the actual light source itself, only the light source interacting with geometry in the scene.

Here’s a sort of hacked together idea of a work-around. I put a non shadow casting static mesh sphere around a point light and gave it an emissive material. That way there is an actual light “source” captured in the reflection actor and I get decent lighting on metallic objects after a light bake.

There might be a way to blueprint something like this, where the light source radius drove the sphere radius and I matched color. Spotlights could use a single sided disk primitive instead of a sphere. The only thing I can’t figure out is how to hide the geometry in game mode. Un checking “Actor Hidden In Game” was my first thought, but that seems to remove the geometry from the reflection capture.

It seems like maybe a superfluous thing, but there are lighting situations where this could be really helpful. For example, I have a giant metal robot in my environment that I’m lighting as a focal point. Stationary lights look fantastic, but I must be super careful about hitting my light overlap limit. Disabling shadows removes that limitation, but doing 3 point lighting, eg. adding a rim-light, looks really goofy without shadows. If my hacky example of getting reflection capture actors to “see” the light source itself makes sense, it might help bridge the quality gap between static and stationary lights.

Hey mbattaglia3d -

Ah, I understand what you are looking for now and yes static light sources will not be rendered in the reflection capture. This a limitation of static lights, but it is also one of the optimization trade offs for using them in a scene

Thank You

Eric Ketchum

Hey Eric,
I’m having trouble getting this to work, I followed your instructions but reflections from static lighting doesn’t show at all. After lots of trail and error I found out they (kinda) show up when I increase brightness of reflection actor to insane value like 8-10k but it still doesn’t look right.

Additionally this is what happened to Content Examples project when I rebuilt lighting (production quality). I didn’t alter the project in any way I just rebuilt the lighting. Now from the front reflective surfaces are pitch black and the reflections show up only when I’m looking at them from a very specific angle still, they’re incorrect.

Do you know what might be happening here?

Specular highlights from Static Lighting is not supported.

For content examples. Try hitting the option for Recapture in the reflection actor. That may solve that issue. The specific angle image that you’re showing is simply Screen Space Reflections (SSR).

Hey Tim thanks for such a prompt response! I’m sorry I thought static lighting is able to produce specular reflections thanks for clearing that up. Also I didn’t know about SSR and turns out there’s nothing wrong with it.
So only thing that’s left are these reflection actors, I updated them like you told me but unfortunately they’re still black.

I replicated the example in a separate project and it seems that reflection actors work but still I had to crank up brightness really high for the reflection to show up. With brightness set to 1 there’s no reflection sadly and from what I’ve seen that’s the value they used in content examples.

(I disabled SSR to better show you what result reflection actor yields)

Thank you for taking the time to help me!

Make sure that the reflection capture is surrounding the entire room. For the box reflection having it just contain this small area is not ideal.

You can see in the example I have below that sizing the box reflection will give better results:

As for the brightness. In mine setup this is just a new scene with all the default settings. I’ve not adjusted any of the post processes like Auto-Exposure (Eye Adapation).