Handling Reflection Capture Brightness Issues

I’m trying to get a good grasp on what’s going on under the hood with reflection capture to improve the quality of my scenes.
I’ve noticed is that several things can cause reflection capture brightness to be drastically off.

Including:

  • static lights
  • moveable lights
  • emissive materials

However, if I make a scene with stationary lights and none of the above I get reflection captures that always seem to have accurate brightness.

I’m sure this has something to do with exposure of the captured images but I don’t understand why it works fine in some situations (e.g. with stationary lights) and not other situations.

I frequently run into this trying to get accurate reflection brightness in a scene with a skysphere. (Since the skyphere renders using an emissive material the reflection capture brightness will be significantly off.)

Here’s an example:

  • Create an empty scene (File->New Level->Empty Level)
  • Add a hollow bsp brush about 1000x1000x500
  • Add a couple of point lights
  • Add a reflection capture sphere
  • Put a cone, cube and sphere shapes on the floor
  • Create a M_PerfectMirror material (see first screenshot) and apply it to the three shapes.
  • Disable screen space reflections. (Show->Lighting Features->Screen Space Reflections)

At this point everything looks good. The cube almost looks transparent because the reflection brightness is accurate.

Next I add M_EmissiveSky material to the roof to simulate a sky. After rebuilding, the brightness of the reflection capture is too low. The perfect mirror now looks as if it were smoked chrome.

If I also add M_EmissiveSky material to the walls the effect gets even worse. The reflections are extremely dark. This is what I run into if I create a new “Default” level that has a skysphere and add a reflection sphere.

To compensate I can fiddle with the Sphere Reflection Capture’s brightness scale. In this case I have to bump it up as much as 28 to get what looks to be approximately correct reflections.

Finally there’s a really weird thing that happens in this case. Reflections that come from positive Z are completely black. Notice the top of the sphere and cube in this image. I have no idea what causes this.

This emissive materials example is just one case of the problem. I really dislike that I have to change brightness so significantly just to achieve reasonable reflection results. I would have assumed the brightness setting would be something that is just there for artistic tweaking. I don’t understand how the values get off so drastically.

I’m hoping someone can give me some deeper insight into dealing with reflection capture brightness in UE4 and why it works accurately in some situations but not others.

Thanks,
tmek

What are you exposure settings? To tweak this kind of stuff, I always to set my MinBrightness and MaxBrighness to 1. As for reflections, if I recall it right, they depend on ambient term a lot. And that’s why I mentioned exposure. Perhaps your exposure is like 4, but reflection capture still sees it at 1. That’s just the first thing that comes to mind here.

Hi, Bricktop. Thanks for replying. Disabling eye adaptation is something I do as well. I’ve done so in these experiments but the results are the same. The reflection capture exposure seems to be independent of the normal camera/view exposure. I’m hopeful someone from Epic will chime in to provide some insight. I feel like I’ve distilled the issue fairly well with my examples. Hopefully I’m not coming across as complaining. It’s definitely not that. I just want to deepen my understanding of the “why” because I consider my personal path to be more along a technical user/student of UE4 rather than creative artist.

Is there any reason, why you are setting up your level like that? Using emissive brushes for sky is a bit strange for me. When I capture my reflections, they are usually too bright, not too dark. What I typically see in my “mirror sphere” is something similar to seeing the scene in “Unlit” mode.

There are few things I’ve noticed, which help me decide what is included in my reflection captures:

  • Movable objects are not captured.
  • I think movable lights and the meshes they affect are also not included.

Perhaps these things may be useful for you in your future tests.

The reason why adding an emissive material made your reflections darker is that reflection captures get normalized to the brightest thing they captured. That means if the sky you added was brighter than everything else in the scene, it will make everything else a bit darker. The reason it looks odd in your case, is that the blue material is not actually giving off any new light. It is set up that way assuming everything that is captured is emitting photons in the scene.

I would instead suggest placing a static skylight and set it to use “captured image” and then actually rebuild the lighting with the right number of photons coming from the sky. You need to make sure it actually captures the sky and not the level geometry.

You may also have to scale up your sky dome so that none of the reflection captures touch the sky. Then the skylight itself should automatically get a composited cubemap of the sky that does not get normalized into the other captures so then it won’t even matter how much light the sky gives off. Give that a try.

I’m having a bit of the opposite problem, I have a really dark sky and all my reflections are getting captured way too bright; this makes the reflection-captures not merge very cleanly with screen space reflections. I am using a static skylight.

If I manually lower the brightness on each individual capture actor everything looks fine, except with translucent objects (using surface translucency volume lighting mode) that have screenspace reflections turned on in the material: there the reflections don’t seem to respect the brightness settings, making them pop out way brighter when sourcing from the cubemaps and then get dark again anytime screen-space reflections take over.

Why are things normalized to the brightest thing captured, is it something like the reflection cube maps are at too low a bit depth to capture the scene in HDR? And if so, does tuning the reflection capture brightness end up losing lots of precision? (and if not why not just automatically tune it?)

Thanks