How can I increase Lumen reflection max distance on water?

Hey all, I am using the Aquatic Surface water in UE5 and enabled Lumen. Objects in my scene appear to be reflecting correctly, but I notice that the reflection on the water seems to have a Max distance.

I’ve attempted the following console commands and didn’t see any difference.
ConsoleCommands

I did notice a difference in the Lumen Scene visualizer when increasing the Lumen Scene View Distance setting in the post processing volume, but didn’t do anything for the reflection. Here’s what my Post Process is set to currently:

The water material shader model is Default Lit so not an issue with SLW material.

Does anyone have a clue about how to increase this? Or have any insight on a good water to use for UE5 that supports Lumen reflections?

1 Like

I am having the same question, Does anyone have any clue?

2 Likes

I think I do have the answer on this, but it may not be one you like.

Essentially, lumen currently does not support water at all beyond screen traces. While Lumen’s HZB traces are better quality than UE4’s old implementations, they’re still view dependant. When I say water, I do mean specifically SLW, as I believe other methods of translucency can use the low-resolution radiance cache, which provides low-quality GI and is mainly useful to combat light-leaking.

However, this will not be true for long. Lumen has been updated since 5.0 to include support for a single bounce of mirror translucency, including on single layer water. I’ve tried it out myself and it works very well, with all the quality knobs regular lumen supports.

So essentially, you can have lumen support GI, but that requires either creating a custom build of the engine off of github, or waiting for a preview of 5.1 to surface. I regularly compile and test new engine features off of github for experiments, but it’s a challenging workflow for larger projects due to the obvious bugs and untested features it entails.

Hey @jblackwell, thank you for commenting.

I understand that UE5 Main has a solution for Lumen with SLW. That is why I resorted to using a water material that uses the Default Lit shading model.

You mentioned other methods of translucency utilizing low-resolution radiance cache. Is that essentially what @VincentW113 and I are seeing on our water currently? If so, do you know of a way to extend it further? I don’t need the reflections in the distant to be accurate or clear, but at least need something.

I suppose I have to resort to SSR or Raytraced if I can’t get lumen to work on my water at least until the engine supports Lumen with SLW. I’m curious what solutions other devs are using for distant water in UE5.

I’m more than happy to @jRoogles , I had this problem myself and am happy to help. That’s an interesting question, and my answer would partially depend on the specifics of your water material. It looks like what you’re seeing is the distant lumen radiance probes, I recognize the artifacting pattern, but it looks like it’s one probe stretchign over the entirety of the water, which is unusual. There should be multiple probes blended together into a tolerable simulacrum of the scene.

While I don’t know the variables off the top of my head, you do have options for fixing this problem. With the right CVars, you can control both the resolution, density, and distance of the translucency radiance cache, which should let you gain the resolution you need to appear passable.

RT reflections are an option, and in this scenario, they would most likely be sufficient. They can’t really handle GI in reflections, but they can at least suggest what you need.

Failing all else, you can hack a cubemap into the water material that’s slightly more reflective (pun) of what the scene environment looks like than the low-res radiance probe. You’re basically going back to 2010 as far as visual fidelity is concened, but at least it’s on the table.

The material comes from the Aquatic Surface on the marketplace, but basically has all the things that a water material would have with some extra tools. The material Shading Model is Default Lit. Uses Surface TranslucencyVolume for Lighting Mode. It has refraction and WPO. Not sure if that’s helpful, but trying to refrain from posting the actual material since it is a paid product.

I had been experimenting with some console commands, but none of the ones I tested in the screenshot above seemed to give me the results I need. You mentioned that it appeared there was “one probe”. Are there any commands that you know of that will increase the amount of probes? And perhaps another that will expand the distance of the probes from the camera?

I’ve attempted cubemaps for the water. While the reflections do look HQ, they really aren’t practical in a scene where the player can see large objects in the water from all different perspectives (the cubemap only captures one angle of that object).

After some more tinkering with the environment, I was able to get the water to use a big sphere reflection capture at the point where Lumen reflections fall off. Only problem is, this only shows in the viewport and does not work at runtime. :frowning_with_open_mouth: I’m not sure if the results I am seeing is more like unexpected behavior in the engine, but if I could get that to work at runtime, I’d be happy!

If you look closely, you can still see the falloff line where SSR takes over

This is what I get at runtime when I simulate

I have a few ideas. Simulate isn’t quite the same thing as PIE, and I believe simulate doesn’t take into account actor behavior (I could be VERY wrong here, this is not my speciality). You may want to look into Horizon: Forbidden West’s implementation of water, as I believe they did essentially use a well-tuned dynamic cubemap with screen traces, the trick was tuning the distance cutoff/angular view to avoid distortions. I think the cubemap may have refreshed at the camera origin to maintain parallax with the scene but I could be wrong.

I appreciate you not posting the material, good courtesy. The shading model of water may be something to experiment with, different models can have surprisingly divergent visual behavior, and one might be worth the perf hit.

Also, that grey color doesn’t appear to be capturing the actual waves and behavior of the scene, I wonder if you’re running into issues with screen traces, or perhaps it’s just a scalabilitty setting.

I finally got what looks to be SSR working at the Lumen falloff during PIE. Doesn’t look too bad except when I get down almost eye level with the water and there are these banding artifacts where the two meet.

Also it does seem to only be GI working on the water and not actual reflections, but I could be wrong. It certainly doesn’t appear very wet looking I guess.

Yeah I noticed the grey reflection as well. I’ve tried on Cinematic and didn’t have an effect. Thanks for the suggestions though. I might have to just wait for 5.1 for SLW to work with lumen reflections in order to get a solid solution.

Unfortunately yes, that may be the only robust option.

I’m not sure about yourself, but I for one am amazed about what lumen lets one get away with from an artistic perspective. No more SSAO artifacts, no more worrying about SSR and adjusting cubemap position and resolution, no baked lighting and mobility limitations. Obviously DFAO and DFIS eliminated some of those issues, but I’m personally amazed that lumen lets you essentially try out any lighting scenario dynamically (with a few strong limitations), and even integrates translucency believably into any environment (at least it will in 5.1, it worked amazingly in my tests).

Could you share how did you do that?
I’m having that very same issue and making the reflections to fall back to SSR until the infinity is what I’m looking for.

That is absolutely what I am looking for as well…
Any hints or tips at how to get this to work?

@rabellogp @AMessYo

I wish I could recall my exact steps to get the SSR to work with Lumen. It had something to do with the order in which I added the water and the sky, but the sphere reflection captures play a big part in getting it to work. I would tinker with placement on those and build reflections after each iteration to see if you are getting the desired results. It is generally best practice to have one large reflection capture over the scene and add smaller ones inside it where you want better reflections. For this, you really just want some general reflections in the distance past the lumen falloff, so you won’t want to have too many smaller ones near scene.

However, if possible for your project, I would update to engine version 5.1.0. They have made a massive amount of rendering improvements including mirror reflections on Single layer water and translucent materials.

I personally have not testing the distance falloff yet in the latest version, but at least for reflections up close, we can get some much better results compared to before.