I am coming back to Unreal Engine 5 and this time I have decided to test Lumen, the new lighting system. Lumen is a fully dynamic global illumination system designed for next generation consoles (and, obviously, high end computers). The idea is to provide realistic lighting, with GI bounces and reflections, that will improve the overall visual fidelity of a game.
By default, Unreal Engine 5 has Lumen enabled unless you have converted your project from UE4 to UE5. If this is your case, you can enable Lumen by going to Project Settings and then, under Rendering, set the “Dynamic Global Illumination Method” to Lumen and then restart the editor.
The image below shows a simple test of Lumen real time GI with two blocks, one on top of the other. You can see the light bounces on the bottom block, generated in real time.
Then I created a quick test of a moving light. First, I made the light move pretty fast (10 units every tick) and that caused a lot of horrible artifacts as the light moved away. However, when I made the light go slower, 1 unit every tick, the noise artifacts were almost gone. Another test I did was to turn on/off the light every five seconds (I set it to 0 and then set it back to the original value), and the GI took between one to three seconds to update and the result is less like a light turning off and more like a light gradually dimming down.
From what I have been reading in the documentation, I was reading local changes update quickly (like the light going through the pillars) but global changes propagate more slowly (turning off the light). I think this is the reason why I was getting that horrible noise when the light moved very fast, or when I turn off the light, but I get a nice change when the light moves at 1 unit per tick.
While testing the scene, I noticed it’s best to set the lights to dynamic. If you set them to static or stationary, the engine will ask for the lights to be rebuilt (unless you have manually disabled static lighting in the project settings).
Lastly, I decided to test Lumen on a full scene. I downloaded a scene from the Marketplace and added it to my project, and then I imported a CC3 character from Killer Dolls (without auto-setup since there’s no auto-setup plugin for UE5) and attached a light to it. Performance was a little slow, and the effect was not very noticeable for the light on the character, although the environment itself had a lot of nice bounces, so I think I just didn’t set the light correctly (maybe something related to the range or intensity).
After tweaking the light and the pawn’s camera, I more interesting result. Still, performance was a little poor. I want to clarify I don’t mean the game was running at 15fps or so. The game was still running at 60fps, but there were some hiccups here and there. I think it’s safe to think a faster GPU (like an RTX 3000 series) would surely make Lumen run faster than my current setup (an RTX 2000 series).
In my opinion, Lumen can benefit game development a lot, although in some cases the benefits are more noticeable than others. For example, in scenes where you have natural light sources (like the sun) and you are dynamically changing the environment, the effect will be more noticeable than when you have a character in a dark corridor carrying a flash light. Still, this is a very nice feature to add to your arsenal.
Again, as I have said in my previous articles about UE5. I think it is cool to learn about the new UE5 stuff and experiment with it, but if you want to make games using Epic’s tech, stick to UE4.
Get Unreal Engine 5: https://www.unrealengine.com/ue5