Reflection Captures not working on translucent materials.

Hey, I’m having problems setting up reflective objects. I’m trying to create glass windows in quite a dark scene, but short of placing a scene capture inside each window and projecting the result onto the texture, I can’t seem to get reflections working at all. I have two sphere reflection captures in the scene, one fills the whole scene, while the other is in front of the window. I can’t find much information on how to set these up for transparent objects, but I did find this page, which didn’t help much. The odd thing is that the built-in opaque reflective shaders appear to be working, but the translucent glass shader does not. I currently have “force no pre-computed lighting” enabled, but disabling it does not help, and the opaque reflections still work.

Hey Hoeloe -

Have you set your glass material’s Translucency Lighting Mode to TLM_Surface?

Thank You

Eric Ketchum

Yes, I have. I’m not certain of this, but it appeared as though reflections were working, but were almost imperceptibly dark. I tried increasing the brightness on the reflection spheres, which didn’t help. I have a solution set up at the moment which captures a large area of the screen from the opposite side of the player to the main camera, and projects that image based on screen coordinates. It’s very approximate (due to the large FOV required), but it works well enough.

Are you working on mac or win? Reflections on translucent materials on mac ar not currently supported (nor will be soon unfortunately) due to the limitations of OpenGL4.1

How do you project the result of a scene capture onto a texture?

I’m using Windows 8.1.

As for the projection, I’ve attached a render target to the camera, and am using a texture sampler on that, with the UVs mapped to the screen.

Hey Hoeloe -

Depending on if you wanted realtime reflections, you could use the tried and true cubemap with a reflection vector tied to its UV added to the emissive channel of the glass material. This would allow you to control the brightness of the reflection but would not allow realtime results unless you used a render target texture and a scene capture actor which could be more costly than what you are doing now.

Thank You

Eric Ketchum

I’ve been using a scene capture actor for just planar reflection, rather than cubemap, but I may swap that out for a cubemap reflector. I’m aiming to keep cost low, so it might not be worth it. I’m still concerned as to why I’m not getting any results from the reflection captures, though. Is it because my directional light is incredibly dim?

The odd thing is that some of the other surfaces, using the pre-built shaders, in my scene do have real-time reflections, apparently from the reflection captures, so what am I missing?

Hey Hoeloe -

I cannot say with 100 precent certainty but since the sphere reflection captures work by taking a low resolution sampling of the scene along a spherical solid then use that solid to render out cubemaps which are then blended on the influenced materials. Translucency only uses a single non-blended cubemap instead of the dynamically blended one for opaque materials. That and the dark scene may keep your glass from getting a good reflection from the Spheres.

Thank You

Eric Ketchum

Well, oddly, I can’t get reflections on my own materials regardless of whether they are opaque or translucent, and yet other materials in the same scene do receive such reflections.

What’s your material setup look like that is causing this issue?

Eric Ketchum

I used the material in this tutorial, but left switched between transparent and opaque: Unreal Engine 4 Tutorial: Glass Material (english) - YouTube

Hey Hoeloe -

I am not seeing a problem in my level which is also very dark. I’m getting some really nice reflections. I would make sure that in your material attributes that you have Enable Separate Translucency unchecked (false). This is the only way I could get the reflections to completely vanish. If that doesn’t work, is it possible to send me your material *.uasset and the mesh *.uasset that you are applying it to for testing? (You can pull them out of your C:[UserName]\My Documents\Unreal Projects[Project Name]\Content).

Thank You

Eric Ketchum

Ah, I think I’ve worked it out. It seems that reflections aren’t working only on the plane directly behind the camera. I’m not sure if this is because of the light vector, or a bug, but I’m not getting reflections on flat surfaces facing directly along the positive x axis on the world. I’ll do a bit more experimenting.

EDIT: Okay, It looks like it is to do with the angle of the light, but producing reflections on surfaces pointing approximately towards the camera seems to be almost impossible, regardless of the light position. I still can’t seem to get transparent reflections working at all though, I’ll keep experimenting.

Hey Hoeloe -

Can you post a video or screenshot of the issue and how its behaving for you.

Thank You

Eric Ketchum

Of course. Here are two almost identical materials. The only difference between them is that one is set to opaque, and one to translucent.


As a side note, it appears that my reflections didn’t seem to work because they were reflecting a billboard object, which blocked the view for anything else. Is there a way to list an object to be ignored by reflections?

Hey Hoeloe -

Plug a large value (say 26) into Specular. Since Translucent materials only apply reflections to the Specular this number acts as a multiplier to brighten the resulting reflection on the material.

Thank You

Eric Ketchum

I already tried that, with no change to the result. I plugged numbers ranging from 0 to 500000. I deleted the node because it seemed to have no effect.

The only difference between the material you have above and the one working in my test bed is the Specular input. At this point I would need to see your entire project to narrow down the variables left which I am more than happy to do. I will need the *.uproject file the Config and the Content folders only.

Eric Ketchum

I opened a new project to see what I could discover, and found out that reflections worked in it… right up until the point I changed any of the settings on the sphere reflection capture. I dropped the capture radius down to 2000 (well within range) and the reflections stopped working, even after I updated the captures and rebuilt the lighting. I then pushed it back to 3000, and updated the captures and rebuilt the lighting, but the reflections remained broken. This appears to be a bug.

Hey Hoeloe -

When you say “well within range” what are you referring to? Only items within the confines of the influence of the Sphere Actor will be able to be reflected.

I reconfirmed in a new map using only starter content and the glass material you linked to above. I decreased the ambient point light to 50 (any lower and you couldn’t see anything). I decreased the Sphere Capture Reflection to 500 influence so just covering the walls. Lastly I took the Specular input in the glass and made it 1000.

Can you confirm to me what version of the engine you are using?

Thank You

Eric Ketchum