Light map issue with modular meshes

We have some modular meshes like this:

Materials used contain seamless textures.
We construct simple room using such blocks and rebuilt light.
There are visible light map difference on block edges:

CSM is disabled, LPV is disabled.
What can we do to solve this problem?

Hi Strangeman,

This is caused by the the indirect lighting in the scene when using static/stationary lighting.

You can reduce this by adjusting the World Settings > Lightmass properties for Indirect Lighting Quality(2+) and Indirect Lighting Smoothness (~.6).

You may need to tweak these values some, and it will NOT remove all the seams. It can just help smooth the artifact.

For further information have a look at this post on the forums for some helpful information in regards to Lightmap UVs and adjusting these settings: Modular Asset Lighting Problem - Rendering - Epic Developer Community Forums

Thank you!

Tim

Thank you Tim for answer, it helps but not really much.
With “Lighting quality” = 2 and "Lighting smoothness’ = 0.6 the picture became better a bit, but colors of sibling meshes are really varies. With lower “Static Lighting Level Scale” ~0.1 the seams between meshes is less noticeble, but whole mesh surface looks dirty. With higher value for this param surface looks more clear, but seams are more visible. Lightmap UV are snapped to grid, mesh texture are seamless, padding between UV parts large enough, used the same material, smoothing group, meshes also snapped and aligned to grid… and with all of this lighmap is still looks not acceptable.
Can be done anything else except steps listed in linked post? Do your team have a plan to improve lighmap calculation further or this version is final?

Do your team have a plan to improve lighmap calculation further or this
version is final?

It’s a known artifact, but there isn’t an easy fix or any immediate plans to solve this at the moment. It’s on that bucket-list of issues that we’d like to see resolved in the future though.

Using the settings above can help in some situations better than others, but overall you’ll still likely see the artifacts. For scenes like you have above, there are two options that would be best to use.

  1. Use other geometry to hide the seams, like a column in this instance.

  2. Make the length of the wall with the multiple windows a single object, the wall a single object, the floor as its own, and same for the ceiling as its own single object.

Option 2 may seem counter-intuitive to the widely preached “modular design” methods, but it can actually be better depending on the scene because you have fewer draw calls for each material and mesh being used.

The steps and info posted in the forum link are meant as a way to help get the issues to be less noticeable, but not entirely a way to eliminate it.

With the Static Lighting sale, If you’re doing Arch Viz work for a single scene this probably won’t cause too many issues, but for larger scenes for a game I wouldn’t recommend changing this setting. This scale value is supposed to match your scale used for your scene. So if you’re using the default centimeters you would want to leave it at 1.0.

I see, I know about most common issues with ligthmap creation, some problem with seams, some wrong shadowing or light bleeding, but I don’t understand why two neighbour ceiling blocks have a completely different color tones, although the same floor blocks have not - it makes me think that something wrong with it.

It depends on the number of bounces and how much direct light they are receiving. When the light bounce is being calculated it’s being done on separate threads.This means that the mesh next to it doesn’t have the necessary information from the others calculation to produce that smooth of a transition or no seam. If all light builds were handled on a single thread it could produce the same shading smoothness without the color variation or seams, but that would not work very well for all the calculations that need to be handled for lightmass. It’s a known issue that hopefully will be resolved one day, but it won’t be anytime soon though. :confused: