Lumen emissive lighting nonfunctional in packaged build

We have caves with emissive walls and in editor the whole cave is lit up from these emissive thanks to lumen. Once we make a packaged build however there’s no light in the caves whatsoever it’s just emissive walls in pitch black darkness. We get beautiful shading outdoors. It’s obvious lumen is on, the difference is quite stark when we type r.lumen.diffuseindirect.allow 0 to AB test. I also tried turning the radiance cache on in the packaged build and it made no difference. The only thing that made a difference was turning on screen traces and the screen traces produced *some* bounce lighting but the quality of it was not good compared to what we have in editor with screen traces off.

I’ll share our configuration -- though I would have expected anything we set in defaultengine.ini to affect *both* client and editor equally.

r.Lumen.BilateralFilter=0 r.Lumen.Temporal=0 r.Lumen.Reflections.MaxRoughnessToTraceForFoliage=0 r.Lumen.ScreenProbeGather.ShortRangeAO=0 r.Lumen.DiffuseIndirect.SSAO=1 r.Lumen.ScreenProbeGather.Temporal.DistanceThreshold=0.05 r.LumenScene.GlobalSDF.CoveredExpandSurfaceScale=0.3 r.LumenScene.GlobalSDF.NotCoveredExpandSurfaceScale=0.3 r.LumenScene.Radiosity.ProbeSpacing=8 r.LumenScene.Radiosity.HemisphereProbeResolution=3 r.Lumen.TraceMeshSDFs.Allow=0 r.LumenScene.SurfaceCache.AtlasSize=2048 r.LumenScene.SurfaceCache.CardCameraDistanceTexelDensityScale=50 r.LumenScene.SurfaceCache.CardMaxTexelDensity= 0.1 r.LumenScene.SurfaceCache.CardMaxResolution=256 r.LumenScene.SurfaceCache.CardCaptureFactor=32 r.Lumen.ScreenProbeGather.RadianceCache.ProbeResolution=16 r.Lumen.TranslucencyVolume.RadianceCache.NumProbesToTraceBudget=200 r.Lumen.ScreenProbeGather.RadianceCache.ProbeAtlasResolutionInProbes=96 r.Lumen.TranslucencyVolume.RadianceCache.ProbeAtlasResolutionInProbes=88 r.Lumen.ScreenProbeGather.DownsampleFactor=32 r.Lumen.ScreenProbeGather.TracingOctahedronResolution=8 r.Lumen.ScreenProbeGather.IrradianceFormat=1 r.Lumen.ScreenProbeGather.StochasticInterpolation=1 r.Lumen.ScreenProbeGather.FullResolutionJitterWidth=1 r.Lumen.ScreenProbeGather.TwoSidedFoliageBackfaceDiffuse=0 r.Lumen.ScreenProbeGather.ScreenTraces=0 r.Lumen.ScreenProbeGather.RadianceCache=0 r.Lumen.ScreenProbeGather.ShortRangeAO=0 r.Lumen.TranslucencyVolume.GridPixelSize=64 r.Lumen.TranslucencyVolume.TraceFromVolume=0 r.Lumen.TraceMeshSDFs=0 r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=True

Hi there!

What do you see when you compare the Lumen Overview visualization in Editor vs what is in the game? Do you see any missing or black surfaces? There is also a known issue where small emissive meshes don’t contribute to lighting in a scene because they’re culled, but that normally is visible in the Editor unless you’re using a different scalability than in game and can be solved by setting Emissive Light Source in the Details panel on the mesh.

You may also want to check that the emissive material’s material domain is set to Surface if the walls are Nanite. Surface is the only supported domain for Nanite.

Also, some of the CVars are no longer valid in UE 5.4 including r.Lumen.BilateralFilter, r.Lumen.Temporal and r.LumenScene.SurfaceCache.CardCameraDistanceTexelDensityScale. I recommend verifying the CVar settings posted above are doing what you intend.

The custom ISM cook time process is likely the source of the card issue - were you able to test disabling it on those particular meshes so they remain static mesh actors?

Hi Alex,

I tried using r.lumen.visualize.cardplacement and there are very few cards within the cave on packaged build vs in editor there are tons. Do you know what would affect so much fewer cards being placed? The only thing I can think of is that we have a cook time process that grabs any static mesh actors that are the same and combines them into isms. I would expect ISM support with lumen to be relatively the same though unless there’s some gotchas I should be aware of?

FYI I tried flipping on the emissive setting and it did not have any effect in the packaged build results. Also -- our scene is not nanite.

EDIT: just saw this in the docs. I’ll try disabling packing on these meshes so they remain static mesh actors.

Nanite accelerates the mesh captures used to keep Surface Cache in sync with the triangle scene. High polygon meshes in particular, need to be using Nanite to have efficient captures. Foliage and Instanced Static Mesh Components can only be supported if the mesh is using Nanite.

Thanks,

Brenden

Yeah we prevented those particular meshes from being made ISM and that solved the issue.