Glass, HDR, Object Render Tagging, and SceneCaptureReflectActor

Hi all,

I just saw the latest trailer for the new Mirror’s Edge and it prompted me to try a few a few ideas I had related to glass rendering. This also revealed a few issues with current glass rendering options. I’d recommend briefly watching this part of the trailer (starts at 4:35) for reference.

1. HDR Translucent Reflections
As far as I can tell from all the settings I’ve toyed with, translucent surfaces treat all reflections (even SSR) as LDR, which makes getting realistic glass materials basically impossible. I’m not even looking at the accuracy of the placement of the reflected image - simply the intensity of the reflections and how those should also influence the opacity of the glass surface.

The way it should ideally work is to take the HDR reflection captures and use the luminance of those captures as part of the opacity function allowing sufficiently bright reflections to fully occlude darker (shadowed) objects behind the glass. This is currently only possible if you have direct control over the reflection in the material editor (as was the case with UE3/UDK where all reflections were baked into a given material) or if you manually set up a scene capture actor in UE4.

Below is an example from real life illustrating what I’m referring to. Note in the photo how the luminance of the additive reflection causes the bright parts to remain “opaque” and completely obscure the objects behind, while the darker parts of the reflection become transparent.

2. Ability to tag only specific objects to be rendered by Scene Capture Actors (either 2D or Cube)
In the trailer linked above, after the character crashes through the glass, take a look at the white reflective wall to the right. They’re using an interesting trick of compositing accurate 2D Scene Captures (or their equivalent in that engine) of the characters on top of more generalized sphere or box cubemaps.

A few seconds later at the 4:46 mark, they do the same thing with the large glass wall in front of the character (she runs toward it and kicks the goon through it) with the two characters having an accurate 2D capture composited on top of generalized cubemap reflections.

Obviously in both cases, the surfaces (the flat white wall and large glass panel) were given special attention with the 2D capture actors being manually set up. This isn’t an automated effect by any means, but it definitely seems like an efficient one by only having the reflection captures rendering small and important objects accurately while the rest of the reflections can be generalized.


Right now this effect is sort of achievable in UE4, but it would be nice to have a little more specific control. At this point, it’s possible to tell a reflection capture actor what classes of objects to capture (skeletal meshes for instance), but it would far nicer to also have the ability to simply flag specific assets, regardless of class, to be captured or ignored. For example, I may only care about having the player character and a few important meshes captured accurately in a scene, but that small batch of assets may include both skeletal meshes and static meshes, which would then force the capture to render far more objects in an inefficient way.

Also, even if I only need to render skeletal meshes (as an example), the Render Target texture doesn’t currently output a nice alpha to use for compositing. I managed to make one by basically blowing out the levels (multiplying by something absurd like 200) and then clamping the captured image, but that resulted in a 1 pixel halo around the captured elements. This part isn’t all that significant but something worth noting.

Is there any word on whether (or hopefully when) the SceneCaptureReflect actor is ever going to make it back? Using a ‘mirror camera’ with the current scenecapture tools just isn’t cutting it given all the back clipping issues there are, not to mention issues that crop up with changing resolutions and ratios.

I agree. Strongly.

bump