I’ve rebuilt a map from my UE4 game in UE5 and tweaked lighting settings for a long time. But no matter what I do, my windows have these ugly black rings around them.
Happens on both the lit and the shadowed side of the building, every window
Splitting the wall meshes into into however many sub-elements doesn’t change the outcome
Turning off the SkyLight’s “Cast Shadows” gets rid of them (and every shadows everywhere as well )
Increasing the SkyLight’s “Distance Field Ambient Occlusion” setting “Min Occlusion” gets rid of them (and replaces them with weird blurry, flickery glitch tapestry)
Increasing the project’s “Distance Field Voxel Density” from 0.2 to 0.4 makes the black blots shrink a bit
Voxel Density 0.2 (default):
Voxel Density 0.4:
Where to the black blots come from and what else can I tweak?
I found out what’s going on.
My building consists of separate, non-air-tight meshes for the interior rooms and the exterior shell. In other words, the rooms are like inverted cubes, the distance field for their meshes extends outward infinitely. Vice versa, the building’s exterior elements have no thickness, so everything behind them is “inside”.
So from the SDF perspective, the entire interior is inside a volume and should be black. I’m unsure why it only happens where the interior and exterior walls are close, maybe it’s a distance limit for SDFs or if the interior positive SDF and the exterior negative SDF value are competing (if they have an exponential fall-off with distance).
Anyway, three ways to fix it:
- Turn on two-sided distance fields for the problematic meshes
- -or- Build air-tight scenery pieces that build a closed volume between the exterior shell and interior wall
- -or- Give both the exterior elements and interior elements a thickness so each is an air-tight volume on its own