Bounce cards = tons of artifacts

I’m new to baked lighting so I might be missing something.
My UVs are properly laid out with enough padding, lightmap sizes are 128 and 256.
Only when I use bounce cards I get seams and lots of noise/spots on the walls.
I do use a lightmass importance volume.
Anything I should check?

Lightmap resolution isn’t going to help, you’d need to increase the lightmass quality (increase the number of samples)

Currently using 100 bounces, Smoothness of 0.6 and level scale of 0.5.

Number of bounces won’t help, and lowering the smoothness will increase the amount of noise, you have to increase the lightmass quality to actually increase the amount of samples.


Level scale: 0.25
Bounces: 100
Indirect quality: 5
Smoothness: 0.6

Floor has 512 lightmap with 4 pixels padding. Is there no way to avoid the seams there?

Can’t avoid seams on modular meshes like that, make one object for the floor, each object gets processed on a separate thread and so things like lightmass smoothing will only take that object into account which creates slight lighting variations. Also, if you make surfaces one object it reduces the amount of draw calls and the amount of polygons it has to process.

On a side note, lightmap unwrap for square pieces like that should occupy whole UV space with no padding. Lightmap padding for each object is added automatically. It is the padding between UV islands that belong to a single object you should be adding.

But then I’d need a gigantic lightmap to have acceptable shadow quality. :\

Really? my lightmap currently look like something like this image from this article:…-and-seams.php

It dates back to UDK.
In UE4 there is an automatic padding generation, that is hardcoded to enabled by default. The principle, described in the article, is still applicable, when you are packing multiple UV shells for single object.

In theory, yeah, you would need it so, but on practice, you should just avoid placing seams of your modular assets on uniform surface. Hide it, preferably in geometry, or in a natural texture seam.

I’d also add from personal experience, that investing that much efforts with snapping lightmap UV to pixels and arranging perfect shell padding is often by far not worth time investments and quite commonly you can cheapskate on it by overpadding in favor of asset production time decrease, while sacrificing nothing, but small lump of lightmap space usage efficiency.

See official docs:…suvsandpadding

The padding on the outer edges is wasted space, you only need padding between UV islands. The lighting build process will handle the outer padding since its job is to merge the individual lightmaps into lightmap atlases (the atlases are 1024x1024 by default I think).

Alright thank you all for the info.
I can add some stuff to the ceiling to hide the seams i.e lights, pipes, decals etc. but the ground is supposed to be flat since it’s a garage. What do you suggest to hide the seams?

I suggest to make the floor a single mesh.

It depends on how big the surface area is, for large buildings it’s not really possible to make the ceiling/floor one mesh and get enough detail in the lightmap, but there might be ways of hiding the seam with something.

The area is kind of large actually, about 32 meters x 16 meters so even a 2k lightmap would still look too lowres. Other issue is that one large floor and ceiling breaks the modularity. For walls you see I have some columns on the seams but for ground it’s hard to think of anything. I will see if I can make the floor out of actual 3D concrete blocks to have seams falling slightly in the crevices.

Honestly, something that size can probably look fine at 1024, right now you don’t have objects in there so you won’t be able to tell if you don’t have high enough resolution yet. The issues I see come up if it’s like an entire house or a warehouse.

Thing is… that I don’t recall seeing seamless floors that large anywhere.
With any kind of coating, you would need to have some crevices left for thermal expansion of the material, otherwise it will be covered in cracks in one or two seasons.
If you want to keep it modular, just add a tiny normal map gutter on the edges. In most cases it will be enough.
Additionally, the difference in final picture will be far less extreme than graybox one.

You can also hide the seams on a supposedly flat floor. In a garage, there could be oil stains on the floor, or other debris. dark tracks fom the tires, etc.
Maybe even an old newspaper lies around, who knows :wink:

Thank you all for the help.

I do have a workaround to remove all these kinds of seams as long as you build lighting on a single machine. For a distributed build, we need modification into UnrealSwarm, and the guy who wrote it has left Epic, that’s why this problem has been here for a long time.

I’ll probably base by workaround on top of Lightmass 4.18 :slight_smile: