Hi, there!
Let me be really honest and mention I’m a Unity dev and brand new to UE5. I’m considering reworking my game in UE5, especially cause of Lumen. But after getting inside the engine, I realized software raytracing doesn’t produce usable reflections and you end up relying entirely on SSR. Unless I’m using them incorrectly and misunderstood how they work.
In my case, I’m working on a top down game that heavily uses mirror-like reflections. Planar reflections would be perfect, but I need multiple of them and at different heights, so they’re extremely limited, hard to set up without overlap, and expensive. Raytraced reflections would be the perfect solution to my problems, but it seems it would only really work with hardware raytracing, which is not an option for my game.
Given the 5.1 roadmap, which is a bit vague in it’s terminology, I’m wondering if these bad software raytraced reflections are unavoidable and will never be properly fixed, or if we’re soon gonna get them looking beautiful in a future release. The roadmap mentions mirror-like reflections and water reflections (yay, that’s what I want, right?), but I have no idea if that’s for software raytracing, and I’m guessing it’s not. So I’d really love some input on the matter. Or if there are any fixes, tricks or alternatives, I’d highly appreciate any help.
Although I am not a Unity Dev, I can understand your pain in regards to reflections. Unreal’s reflection pipeline has always had an interesting series of trade-offs no matter what method you choose, and the documentation can be…vague, to say the least. Lumen is powerful and scalable to an extent, but it also might not even be the best solution for your use case.
As a quick run through of Unreal reflection solutions:
Cubemaps are cheap and can handle rough reflections but require manual artist time, VRAM, and aren’t ususally parralax-correct even with the box projections. Static
Linear-step (old) SSR was screen-dependant and failed at free geometry, and the new Hierarchical Z-buffer tracing is way more accurate but also 3x the cost.
Planar reflections offer great image quality, but they’re a massive render cost and take 15% of your frame budget just by having the feature enabled.
Render Targets can be used to create reflection-effects, and depending on your number, use case, and screen size, might actually be a good solution. Planar reflections and render targets work very similarly, but can be set up and scaled differently in some cases.
Pre-lumen ray-traced reflections: support arbitrary roughness (albiet with noise) and bounce number, but are very expensive and don’t support dynamic occlusion. Bandwidth=heavy.
These are all non-lumen, lumen methods are more diverse still.
Software lumen reflections work by tracing rays against a representation of the scene made up of signed distance fields, a mathematical scene representation that’s way cheaper to trace rays against than raw geometry. To keep tracing time down, rays that move further than two meters are instead shot against the global distance field, an even lower-res version of the scene that’s incredibly cheap.
Hardware ray-tracing is the same thing but the raw triangles themselves are being traced against. If using nanite (assuming you know how it works) it would instead trace against proxy geometry, but with 5.1 you can now trace against the full-resolution nanite meshes. Only hardware ray-tracing can do this, and to my knowledge only hardware RT supports translucent reflections and reflections on single layer water.
BOTTOM LINE:
Reflections for software RT are improved in 5.1, especially in the distance. If it matches your quality bar, then lumen could be a totally viable choice. If it doesn’t, you may want to consider other available reflections solutions.
Thank you a lot for the detailed response! That’s super helpful. I’m going to try 5.1 and see how Lumen reflections are looking currently. I might just stick with them! Cheers.