Progressive Lighmapper Produces Shadow Artifacts

I just started experimenting with the Progressive GPU light mapper, now that I have a machine that can run it. A problem I’ve found is shadows that should not be there, that do not appear when using Enlighten.

You can see in the attached image, Progressive produces noisy-edged shadows in this scene (on the ceiling in this case, but there are other places). At least I think that’s what those blobs are. These shadows are not present when Enlighten generates the maps. The only things between the light and the surface where the shadows appear are what you see, and there is nothing in that screen capture that should cast or receive shadows. I’ve checked and rechecked my settings, and Enlighten confirms that shadows are turned off where they should be.

I’ve tried different Lightmap Parameters & Lightmap Resolution settings, Progressive Updates on and off, Multiple Importance Sampling on and off, probably a few others. Any ideas what might be causing these unwanted shadows, if that’s what they are? Does the Progressive light mapper ignore shadow cast and receive settings?

Do a bake and then open texel validity view and see if that area shows as red.

Yes, as you can see in the attached screen capture, those shadow areas are red. I don’t know what that means, I hope the Unity Manual will explain.

It looks like Progressive is ignoring shadow cast/receive settings. In this scene, the ceiling and objects near it have cast and receive shadows turned off. But all over the scene, those near-ceiling objects are casting shadows on the ceilings and walls.

8135687--1055699--Texel Validity.jpg

Makes sense. Those objects casting shadows have no backs, so lots of backfaces are being hit (even though they’re not supposed to be casting shadows?). Unity Manual says to create a Lightmap Settings asset and adjust the Backface Tolerance value.

However, in the Lightmap Setting section it says, “These parameters configure Realtime Global Illumination using Enlighten (deprecated).” This is a Progressive problem. Just to confirm, I created a Lightmap Settings asset, and tried values from 0 to 1. The Backface Tolerance value has no effect on the Progressive light map, and changing its value does not trigger a new Lightmap to be generated.

Enlighten does not produce these artifacts, only Progressive. But Lightmap settings are only used by Enlighten. It still looks to me like Progressive is ignoring the shadow settings.

It has nothing to do with the shadow settings. You just have open backfaces which causes the Lightmapper to reject texels.

Either:

-manually cover the open backfaces
-set the materials that have open backfaces to double sided GI
-In lightmap parameters set backface tolerance to 0 ← this one is the easiest to do

Also tell us what worked for you.
This problem was one of those that made me switch to real time lighting.

This problem is actually a feature and needs to be a lot better documented.

– Covering the back faces would a big job in this scene (and defeat the purpose of removing them).
– I’ll look into that, but I’m not sure a different material would look right.
Setting the backface tolerance only applies to Enlighten (see my previous post), so that’s not a solution.

Easiest to do is stick with Enlighten, which is SLOW, but renders correctly and, other than the artifacts, looks virtually identical to the Progressive Lightmapper.

This is not correct. Most of the lightmap parameters are enlighten related, that’s true, but PLM also uses backface tolerance. (Unless you are using a really old Unity version?)

Setting a material to use double sided GI doesn’t change the look of the material, so not sure what you mean here.

I’m doing this on 2021.3.0f1 Apple Silicon.

I see my problem, Lightmap Settings assets are light mapper specific. When I created the asset like the Unity manual said to, it was an Enlighten asset, which is why the Progressive mapper didn’t recognize it (they look the same). Creating a Progressive asset and setting Backface Tolerance to zero did the trick.

Thanks!

1 Like