Translucent Wall Leaks Light

Using UE5.8.2. I spent hours to solve but finally found myself here. I have tried many ways, but none could solve. The leak is really a little but appears as an object gets close to wall. I have a rect light, in a room, and some walls of this room are translucent. I tried both masked and translucent blend mode materials. Cast shadow on these materials doesnt work.

So, I put a blocker wall with render in main pass and render in depth pass disabled, still leaks :distorted_face:. If I enable render in depth pass, there is no more leak but also the room is no more visible. It works as I decrease intensity of light or move the light away from wall. Both are not applicable, as I cant brighten room enough.

Another setup I tried was setting blocker wall’s actor hidden in game and enabling hidden shadow. Still leaks. I tried point light, turned hardware ray tracing off and many. I believe my blocker wall is thick enough. But I couldnt get a better result than this:

Yes, still leaks.

The leak is the shadow path, not wall thickness. In 5.8 a Translucent material does not cast a solid shadow — Cast Shadow on that material is ignored by Virtual Shadow Maps / MegaLights — and a Masked material only casts a dithered mask, which still pinholes when a rect light sits close to it. A rect light is an area light, so the penumbra grows as the source gets close to a thin surface, or as another mesh approaches the wall. That matches what you are seeing: lowering intensity or moving the light away makes the leak disappear, but neither is a real fix.

The two blocker attempts cancel each other out:

  • Render In Main Pass off and Render In Depth Pass off means the mesh is in neither the camera view nor the depth/shadow pass, so it cannot block the light.
  • Turning Render In Depth Pass on writes the main-view depth buffer. The proxy then occludes the room, which is why you can no longer see inside. Depth pass is not a shadow-only switch.

Use a separate opaque shadow proxy instead of trying to make the glass cast:

  1. Duplicate the wall. Give the copy a simple Opaque material, not the translucent one. A translucent material on a hidden actor still will not cast a solid shadow.
  2. On that component set Hidden in Game = true, Cast Shadow = true, Cast Hidden Shadow = true. Leave Render In Depth Pass at the default. Forcing it on is what hid the room.
  3. Make the proxy a bit thicker than the visible wall and nudge it to the light side, so the rect light’s penumbra starts inside the proxy instead of in the air gap.
  4. On the rect light keep Cast Shadows on, keep Source Width/Height only as large as you actually need (a smaller source with higher intensity leaks less than a large dim panel), and set Contact Shadow Length to about 0.05–0.15 for the leak that shows up when a mesh sits against the wall. Raise Shadow Resolution Scale if the edge is still mushy.
  5. If the leak is Lumen GI rather than the direct shadow, the translucent mesh is also missing from the distance field. The opaque proxy covers that as long as Generate Mesh Distance Field is on for it. Hardware ray tracing will not help while the only occluder is translucent.

Masked can work without a proxy only when the opacity mask is a hard clip (Opacity Mask Clip Value around 0.5, not a soft gradient) and the mesh is set to cast shadows two-sided. A soft mask still leaks under a rect light.

Thanks for reply. I tried but couldnt solve.

If the hidden opaque proxy is already in the level and it still leaks, the shadow method is ignoring that proxy. In 5.8 Virtual Shadow Maps and MegaLights often do not cast from an actor with Hidden in Game, even when Cast Hidden Shadow is on. The proxy is present and still never enters the shadow pass.

Test that directly. On the rect light, turn MegaLights off, or temporarily switch the project shadow method away from Virtual Shadow Maps. If the same proxy suddenly blocks the light, that was the leak. Turn the feature back on and keep the proxy out of the camera without hiding the actor.

The combination that actually gets into the VSM pass: Render In Main Pass off, Render In Depth Pass off, Cast Shadow on, and Hidden in Game left off. Main pass off keeps it out of the picture. Depth pass off is what stops it occluding the room. Hidden in Game is the flag that drops it from VSM. That is different from both-off plus hidden, which never casts, and from depth-pass on, which is what hid the room.

If it still leaks with MegaLights off, it is Lumen screen traces through a thin distance field. That seam gets worse as another mesh approaches the wall, which is the case you described. The proxy has to be an extruded box rather than a plane, with Generate Mesh Distance Field on and Static mobility, or software Lumen never sees it. As a test, set r.Lumen.ScreenProbeGather.ScreenTraces 0. If the seam disappears, raise the distance field resolution on that proxy and keep it slightly thicker than the visible wall, on the light side.

One view splits the two causes. In buffer visualization, compare Shadow Mask with the Lumen scene view. A hole in Shadow Mask means the direct light is still not blocked and the proxy is not in the shadow pass. A solid Shadow Mask with a seam only in the lit view means stop moving the proxy and fix the distance field.

Also worth doing if you can edit the mesh: make the frame and the sill opaque, and keep the translucent material only on the glass pane, inset so its edges sit inside that frame. A translucent sheet the size of the whole wall cannot cast a solid shadow in 5.8 in either blend mode.