Lumen GI and Reflections feedback thread

I think that’s a very reasonable guess; a few different graphics programmers I’ve talked to have all spoken about how most of their work is stability and integrating features with other systems, and significantly less of it the flashy new features that look good on reels. Nonetheless, I’m happy we’re getting these abilities, because they do let us push quality to new levels.

I wasn’t even aware there was a v5.3 branch to be honest, at least I’m not seeing it on github right now. I tried and failed to build main about a week ago, mostly looking to test how multi-bounce reflections will play into rendering diffuse objects. I believe I heard that Epic was testing out a quicker engine version release cycle, but I wouldn’t quite know well enough to make a reccomendation.

Emissive lighting in Unreal engine is propagated via lumen’s screenprobegather, and the lumen scene. If emissive-casting objects move out of range of the lumen scene, then they’ll stop casting light outside of screen-space. You can fix this by controlling the size and range of the lumen scene and final gather in the post-process volume. If by ‘random’, you mean that less coherent emissive lighting when you’re far away, I believe that’s when you’re out of range of the lumen scene and the only thing that can trace lighting are screen traces, which have obvious failure cases and inconsistency.

In regards to baking, I believe you’re sadly out of luck. Static lighting is disabled whenever lumen is enabled, and even so, the lumen team shot down the feasibility of baking lumen onto lightmaps in their talk a year or two ago: lumen is fundamentally screen-dependent, and lightmass needs to evaluate GI for the whole scene, not just what’s in view.

1 Like

You can regulate the range of Lumen with the “Lumen Scene Detail” setting in a Post Process Volume. Default range seems to be 12-13m (Lumen Scene Detail set to default 1), and it gets doubled, if you set it to 2.

2 Likes

Oh, I see. Probably you were already looking into the 5.3 changes, as the “UE5 Main” is the 5.3 version.

About the reflection bounces it’s working as ray traced ones (but much worse, of course): it’s the reflections of materials inside the reflection of other materials. Example of a mirror in front of a mirror:


1 Like

In short, I would always try to use “actual” lights instead of emissives, when possible, as they are very noisy and distance limited.

2 Likes

Ah, I see what you mean, the engine version on startup vs. the engine version in Github.

Recursive reflections solve a major gripe I had in certain scenes where lumen reflections simply couldn’t give the same look at standalone RT or PT. The Cvars talked about terminating rays that exceed a given roughness threshold, but I wonder what the reflection behavior will be if that threshold is played with.

you have a link to a video of this talk? i don’t mind a deep dive.

i think lightmass could still work to some extent in a static scenario. not necessarily for GI or specular. that would require volumetric information, i guess. just a plain baked diffuse light pass. basic coarse ambient information. light LOD if you wanna call it that.

(Lumen | Inside Unreal - YouTube)

They answered it somewhere in the Q and A section, but I can’t particularly remember where.

1 Like

bug or limitation? lights show up in mirrors, which is nice, but only inside their attenuation radius. scaled it up to show it. obviously only blooms slightly with a lower radius.

also question at this point. does light complexity still matter in lumen and entirely raytraced? (even the shadows. i have to run it this way or my vram runs out.) i’m aware i’d add alot of surface cache updates if i’d make all lights larger attenuation for this particular reflection test.

it runs pretty dam’ good tho with this test lab scene (for now). somebody did a good job there. :+1:

also feature request. lights in watts possible? like old school incandescent light bulbs. i’m used to this metric. i use it in blender too.

found some nasty glitches in the raytracing with hit lighting. can’t tell what it’s doing wrong. looks like hit misses. and it flickers alot. it got issues with triangles being partially offscreen? or is it a precision issue? only shows up ingame and only on certain angles.

I’ve encountered this recently, disabling screenspace traces for lumen reflection fixed it in my case.

1 Like

what’s the cvar for that? it’s not an option in the volume.

r.Lumen.Reflections.ScreenTraces

Setting it to 0 helped in my case like I mentioned.

1 Like

already got it. neat. thx. :slight_smile:

1 Like

I wasn’t aware you could get it to show up in mirrors without CVar manipulation, neat!

Light complexity does matter, but in a more abstract way than in direct lighting. the surface cache texels need to sample some lights in order to gather lighting, but my understanding is that they’ll stochastically pick 8 of the ‘best’ lights per-texel (this was the last time I read the presentation and I may be misinterpreting things). So basically, lumen throttles to 8 sampled lights per-texel.

In hardware with hit lighting? I wouldn’t exactly know, because I don’t entirely understand how their sampling scheme works with that system.

1 Like


I just got around to trying lumen multibounce, it appears to have a maximum bounce count of 8 (at least in the ppv), but it’s very visually impressive.

And standalone RT reflections for comparison. There’s almost no difference visually, minus standalone RT’s image being ‘bluer’ (mirrors are slightly blue just to examine color attenuation behavior).

3 Likes

now add some refractive glass (cause reflective too) stuff and see how it goes. i tried. bounced thru 3 simple shapes. runs thru at 9 hits. and it looks great. accurate. index and reflection bounce back on the “inner wall”.


Lumen reflection behavior does not appear to be matching what you’re describing, for me at least. The first layer is reflecting, but subsequent layers are using the radiance cache fallback. The material is two-sided, so the interior reflection is the radiance cache fallback. It’s also invisible in lumen reflections (screen traces disabled). It also casts fully opaque shadows, which is to be expected, but nonetheless visually incongruent.

Also to note: HWRT lumen reflections shows that screen traces (enabled in lower photo) have pretty obvious precision issues, or at least what I interpret as precision issues.

First off, I am incredibly happy the lumen team implemented multi-bounce reflections into lumen. In the scenes and use cases that can handle the performance hit, it adds an extra level of fidelity that enhances the image quality very significantly.

Recursive lumen reflections in Scifi Hallway scene, which has a large amount of specular surfaces of varying roughness values. There are two bounces of reflections, and the noise is extreme. The image is very temporally unstable, and increasing the value of the reflection quality slider makes the noise progressively worse.

This is essentially a lumen stress test with the worse possible conditions for the tech (roughness values between .2 and .4, specular surfaces facing specular surfaces), but I feel like the the quality of rough lumen reflections could stand improvement. Even if the quality could be improved by cranking up the ray count, would be wonderful. Or even a nonphysical option that increases the strength of the blur to achieve stable, if not totally physical, results.

What about the cost?

With ray tracing you were able to add reflection captures as second bounce, giving much more fidelity almost for free.