I believe it is happening because the lighting gets baked into each mesh on a different thread, causing slight variations. Unfortunately I cannot provide a full workaround, I have no experience in this, but in this case you could try and use bigger modules to make it less obvious.
This is a problem that can’t be fixed… the thing is that there can be slight differences between threads so the objects were the render lighting is different. Modular and building lighting don’t work well together.
But exactly that is the case. Its called “Irradiance caching” which speeds up sample calculations by interpolation with neighboring points. Only if not enough neighbor points that have already been calculated, the sample gets calculated.
It would be kind of difficult to define some sort of sync point during the gathering phase to update all possibly affected samples…
One option of course would be to run the light build on a single core CPU machine
Thats what I thought. But they do work well together, it just needs a slightly different approach to the concept of modularity…
If you raise the lightmass lighting quality to like 10, it could reduce the disparity between meshes and once materials are applied, it ‘‘could’’ look okay!
If you slightly move your meshes you break the lightmaps and you go back to dymanic preview, which is why it looks better.
Try to build your scene once with very high quality lightmass settings and tell us if it’s better. something like scale 0.2, bounces 30+, quality 10, smoothness .75 and even try with uncompressed lightmaps.
Also, make sure you use static meshes and not brushes (bsp). Brush resolution of 64 would be catastrophic. For BSP you gotta use a lower value to increase quality. 32/16/8/4/2 etc. The lower the better but it’s still worse than a static mesh.
Nothing seems to work. I guess what Ima try next is to turn it into a blueprint (instanced meshes inside a blueprint), since they aren’t built lighting would this help, or make things worse in another way?
EDIT: Okay, looks like this doesn’t work as well. Well, now what!? How can I add windows and anything without having this happen? This is very troubling ;_;
Unfortunately this is an issue that you cannot avoid, you can only make it less bad. This happens to AAA titles as well, the difference is that they are **** good in hiding it. First, I would use much larger modular pieces, so the issue won’t be visible every 5 meters in the game. Consider your floor for example. If you are planning to use a tiling texture there is no need to actually tile the geometry itself causing additional draw calls, you could build the same floor using only 1 or 2 meshes.
Okay, you reduced the number of pieces, but you still have some seams where they touch. A common method is to cover those up. When you apply materials (with proper textures not just colors) it will be much less visible and you can also use some other meshes to cover the seams (pipes, pillars whatever). Play around a bit and you will get much better results, but as I said unfortunately they won’t go away completely.
A lot of this can be fixed by clever lighting.
I made the observation that the seams get more and more pronounced the farther they are away from a lightsource.
Just place some modular wall meshes in a line and place some pointlights in a way that there is a dark(er) zone in between.
You will notice that a modular seam that is in direct biright light will never how any seams, but the darker it gets, the more seams.
While this is true, it might be not the most efficient solution resource-wise. Also, from a level designing perspective, lights shouldn’t be placed to fix errors.
In my humble opinion, as I mentioned, you need to reconsider the size of your pieces, and only use modular ones where it is necessary. It is not ideal to build your level entirely using modular pieces.
My solution was combining tiling meshes into larger pieces. Any contiguous surface should be made up of a single mesh. For example if you have a hallway, that area should all be one mesh. You can achieve a balance of variety and consistent lighting by breaking the meshes along natural seams. This is an unfortunate problem that unreal has, but can be fixed rather simply. You want to have the pieces not be too large in size because the larger the mesh the larger the lightmap resolution has to be to achieve decent lighting results. Avoid large open rooms, if it is necessary try to hide seams with geometry.