Download

Very persistent Lightmass artifact, even with high settings and clean lightmaps with 4.18

With many different Lightmass quality settings (even extremely high settings, up to 40-50 minute builds), and different types of light (spot / point / point with IES / static / stationary) I get this error on about 60-70% of my builds (sometimes it doesn’t happen, but it is almost definitely a random occurrence):

Light comes through the adjacent room, somehow doesn’t cast light on the bed, and yet the bed acts as if it’s being lit and emits bouncelight, despite not having direct light on it. As you can see on the third image and the floorplan below, it’s as if the bed is bouncing un-occluded light from the room next door at full power, as if the wall separating them is not there, and yet it’s not receiving any light on itself. This happens to a lot of my objects that happened to be placed near a wall but slightly away from the wall, it’s not limited to these beds but it does happen the worst on them.

This is the floor plan:

Have been using UE4 for around two years and all of my projects use Lightmass, and this is the first I’m seeing this (update - not the first time actually, I forgot about another project which had this issue some months back, screenshot on post below). Does anyone have any idea of how to fix this? Any Epic staff who work on Lightmass could chime in with their thoughts? It’s driving me crazy, especially because it will sometimes not happen, despite me not changing any setting, so it becomes almost impossible to resolve myself through trial and error.

I don’t have any example right now but I’ve definitely experienced that bug many times… As I’m always in a rush, I’ll end up with some work around trick like changing that bed to dynamic mesh or even changing room’s decoration until I get rid of the bug. I suspect those are cases where the lightmass system optimization manifests its approximation errors…

Anyway. I’m following this topic because I’m also looking for a definitive solution to this.

Thanks for the comment, what engine versions have you seen this bug on? I originally mentioned I only started seeing it in 4.18, but then I remembered something from one of my other projects -

The same thing is happening here albeit more subtly. The light from the room next door comes through the wall and bounces against the back of the chair, to illuminate the wall behind the chair. The chairs weren’t illuminated in this case either, they only bounce the light, not receive it. The reason I forgot about it is because it seemed to resolve itself on its own. This screenshot was from March, so UE4.16 or so?

Hopefully more people have noticed this, so we can get an official bug report submitted. For arch-vis projects this is quite a huge problem.

So I tested a workaround that I was pretty confident would work, I made a ‘light blocker’ which sits inside all the walls kind of like insulation. It’s completely watertight with vertices merged. The walls are exactly 2cm distance from the real walls as you can see in the Maya screenshot, which I thought would be a sufficient amount for Lightmass (assuming anything under 1cm becomes difficult to resolve if Static Lighting Level Scale is set to 1)

And it not only does not stop the error but also does some weird behavior of its own.

It sits inside the room but I moved it to the side in the screenshot to show what it looks like. Strangely enough, it’s as if it’s not getting shadowed at all, and is receiving the same light as the real walls that surround it. In the above screenshot, you can see the dark shape which is the shadow of the bookshelf. In the next screenshot, you can see it has the same light cast from the lit room out of the doorway. It’s as if those walls aren’t even casting shadow.

Light settings are Production, Scale 1, Quality 1, Smoothness 0.5, but I feel like none of those settings should cause this behavior.

The last time I had that issue it was in 4.17 and 4.18 (I’ve actually migrated the project from 4.17 to 4.18 and the issue kept exactly the same). It was a sofa receiving ghost bounced light from another dimension… Probably light from outside, as it was very bright. But the opposite wall was not receiving direct sunlight, so it was definitely a secondary+ bounced light.

I’ve also tried the “light blocking” workaround at the time, pretty much burying my room in a bunker and it didn’t work.

That leaking looks like it is due to photon mapping, which has a gather step that ignores visibility. The faces of the bed are parallel to the wall on the other side (same normals) causing the photon gather to pick up that lighting.

Would you mind uploading your project somewhere for me to take a look? I might be able to think of a solution that doesn’t totally kill build times, or maybe expose a photon density control to the UI that doesn’t cause splotchiness.

The inconsistent repro thing is scary and definitely a bug. All of lightmass is designed to be completely deterministic. Random behavior is always a bug.

Awesome, thanks for the reply Daniel. I should clarify, that I probably use “random” slightly incorrectly to a programmer’s ears. If I do multiple light builds with the exact same settings, I think it will be 100% consistent, either the bug is there or not there.

When I said random I was referring to changing some settings that seem like they “randomly fix the bug”.

Such as, I’ve had slightly adjusting the attenuation radius of a light fix it, or even turning on / off a light somewhere else in the scene will fix it, but fixes do involve changing one setting or making some scene change.

There is something I find contradicts your explanation though. The other time I saw this behavior was on the screenshot of my second post, with the chairs. Those chairs have slightly angled backs, and would have been placed with slight angle changes to give them a more natural look. I’m quite sure that the exact same thing was happening there too, even though no part of those chairs should have been parallel to the walls behind them.

I sure can upload the scene, I’d be happy to. :smiley: