Previous Lumen Mirror Reflections on Pascal
An older example of Lumen in Unreal 5.0 showing some of Lumen's limitations in Software mode. Updates to Lumen has improved this considerably.
Originally, I was going to explain the effect in the header image. I even had a part about the requirements I had for this small scene, but instead, I'm interested in the Lumen reflections here. These comparisons are from Unreal 5.0.3 running on a pre-raytracing-hardware GPU, so take these images with a grain of salt.
I had wanted to create an underwater hotel scene and being able to see the ocean stretching out in front of the player is kinda important for selling the feeling, as too are the reflections of the interior. There are a couple of techniques that would have worked out-of-the-box for this, but I wanted an effect that could support a day and night cycle, and if possible, use Lumen.
While the volumetric effect looks decent to my eyes, I'd like to add a bit more noise to the particles that drive it, and there is also an unfortunate blocking artefact around the higher rock formation at more extreme angles, which I've kindly not shown as it's not very appealing. But this was content from before I changed this post.
You may notice that the reflections are a little odd. They look like screenspace reflections, but they aren't: they're Lumen. I'm not sure if this is due to my ageing GPU not supporting hardware raytracing, but this shows up in a few other scenes too, such as a planet scene I made a few days ago. The title image suffers two-fold as hardware raytracing doesn't include BSP objects in the acceleration structure.
Initially, I thought that it may have something to do with the lumen scene quality as seen below, on further inspection, I don't think it does. The lumen scene quality seems to affect the on-screen reflections, but not the reflections of faces not visible in screen space.
For the avoidance of doubt, that black void isn't meant to be black. The room is considerably bigger than the image shows. Underneath is the reflection view that shows the boundary for the scene.
This view distance seems to be the same as the reflection distance, and it could well be an issue with the reflection mode wanting hardware acceleration. Either way, Lumen does run on pre-RTX and -RDNA2 GPUs and it's worth noting if it has significant differences.
Especially not when planar reflections, which admittedly do raise base pass cost, result in frankly excellent mirror reflections. They lag behind the level of render target mirrors, which dedicate their render target to a smaller area leading to increased density.
The biggest issue with the below example is that the reflection doesn't quite align with the floor, but that's my fault for not aligning the glass plane nor the planar capture with any semblance of care.
The difference between Lumen and Planar reflections here is stark. The below image has multiple issues, such as a blob where the occluded face of the step should be and the front faces of the mannequin being somewhat mangled. Interestingly, the top face is reflected near the portion visible in screen space. This just goes to show that, on older hardware, Lumen is not the only game in town.
I've updated this post since getting a raytracing-capable GPU. The first thing that becomes noticeable is the quality difference in Lumen reflections: they're almost raytraced reflections. The deprecated raytraced reflections show more distance in the reflection, but it's only noticeable in a handful of cases. Let's just say I'm sold on Lumen. If you were targeting only pre-raytracing hardware, then older techniques are still good choices, but no other solution gracefully handles both older and newer hardware so well.
As of Unreal 5.4, the cinematic level Lumen reflections using the hardware mode are very high quality, matching the deprecated Hardware RT implementation of Unreal 4. This includes reflections on translucent surfaces.