Reflection capture with fully dynamic lighting interior

In my scene I’m using only dynamic lighting with mesh distance fields which can be toggled on and off. because I want the scene to be pitch black when no lights are on I can’t use a skylight to make metals reflect correctly as this will lighten everything.

Using reflection capture cubemaps also does not work as when all the lights are turned off metal will now glow in the dark.

Does anyone know how I can set the scene up to have non black metal whilst still having full darkness?

There is no good solution for this, as reflection captures cannot change in any way in realtime.

You can use material parameters set by blueprint to control the specular/ao of the material as a way to manage the reflections but this is a chore and requires that you’re able to predict which lights will affect the material, so it is not practical for objects that a player can (for example) pick up and carry around.

In the Borderlands 3 they modified the engine so that they could tint the reflection captures at runtime, but to my knowledge UE4 still has no built in way to do this.

Actually I do have one solution: Generate two reflection captures for the room

When the light is on you set the dark reflection capture to Hidden in Game and enable the light capture
When the light is off you set the light reflection capture to Hidden in Game and enable the dark capture

Drawback to this is there will be no transition, just a hard switch between captures. But it will work.

Reflection Captures have a Brightness param. it might be enough for your needs

Why not just tone down the skylight procedurally? Especially as the official .26 comes out. It won’t be long now (just don’t rush to upgrade until the first non preview is out)

Can’t be changed at runtime, can it?

why not? I have been toning mine down at night since .18…

If you never Bake the colors never get packaged onto the meshes… so yes this only works if you disable the precomputed light option.
also, the new skylight is essentially meant to be fully dynamic finally, with .26.
you can force re-capture at runtime without hitches, meaning that the Reflections can really benefit from having an updated ambience to reflect from.

How are you doing this exactly?