Large Reflective Floor

I am looking for the most elegant solution for this problem: Creating a large reflective floor.
Firstly I tried the most efficient way: Capture Spheres. However, the results were not satisfying, because it only reflects visible objects.
Then I tried a capture cube, fixed it on my character and implemented the cube image in my material. That nearly worked, but there is half of the reflection missing.
What is the best solution that looks good and at best is not as pricy in terms of performance?
Ps.: I am rather new to this and I am not the best at using Google, but I just found good explanations for the UDK.

This room look like perfect fit for box reflection capture. It’s static but you can achieve pretty accurate reflections. Just setup the size to fit exactly for that room.

I get with that the same problem: I move my head down and the reflections fall apart. I have to see the what gets reflected, otherwise the result is bad. Also I have those very unpleasant reflection-errors on the edge of the screen.
And I read these explanations.

1 Like

Those are Screenspace reflection artefacts. Screen Space Reflections in Unreal Engine | Unreal Engine 5.3 Documentation

Turn that off when you setup the static reflection probes.

Thank you for your help and your patience! I have to admit, that I feel quite stupid now, because I don´t know how to do that. I always try to read and look for solutions, but with the reflection topic I have huge problems.

There is debug switch under Show column. To turn it off completely you need to go to either the camera or post process settings and turn the Screen Space Reflection intensity to 0.

Thanks for that explanation!
I turned it off, but that results in 0 reflections. Maybe I should try to use a SceneCaptureCube. Otherwise I will turn the roughness of the material higher (Which is in my eyes a not very elegant solution). Do you have any advice of how to tackle the problem I have with that (first image, reflections are missing partially)?

To get good quality reflections you need to have every place covered with Scene Capture actors. Either spheres or cubes. After this is done you can make those look even better by adding screenspace reflections. When screenspace reflections fail then engine fallback to reflection probes. So then your missing reflections are just tiny bit worse quality reflections. Which is a lot less noticeable.

Is there any detailed literature I can rely on here? Reflections are my worse enemies at the moment and it would help to get some more instructions on how to deal with them. It seems as if there is no easy solution.

Reflections are basically done in two parts in UE4. SSR is the main dynamic reflections, however the engine can fall back onto capture actors to fill in the spots SSR misses.

Capture actors capture a cubemap and use that to provide local reflections relative to the actor. Grab a sphere scene capture actor and just drop it somewhere, along with a skylight set to movable, and you should see the capture actor providing static reflections.

The only solutions you have available are SSR, precomputed cubemaps in materials to manually fake the reflections (Alan used this to give some reflections on the translucent water surface in the water planes pack), or scene capture actors. SSR uses the pixels on-screen to produce reflections, hence why it’s called a screen-space reflection. Because of this, anything that’s off-screen isn’t reflected, SSR can’t even comprehend the concept of off-screen due to the fact that it’s a screen-space effect. This is why when you look down, reflections break. SSR doesn’t know what’s above the floor and hence cannot reflect what you’d expect to be reflected. Scene capture actors work by capturing a cubemap, basically a big cube with textures pasted onto the inner walls, so whichever direction you look at within the cubemap is the same as what it’d be in the actual scene. The reflection environment can use capture actors to fill in world-space detail (reflect things off-screen that SSR cannot reflect), but it’s lower quality and static, so the reflections do not update in real-time (unless you use the dynamic capture actors which destroy performance).

Basically, what you do is you use a box capture actor to encompass the entire scene, then where there’s smaller detail, say in corners or near important parts of the scene like a desk, place smaller sphere capture actors. Smaller capture actors take priority over larger actors, hence you can increase the quality and accuracy of reflections where needed. Remember that the reflections are taken from the point of view from the actor itself, so position all your actors in such a way that it correctly reflects the scene. Then, you can use SSR to provide more accurate screen-space reflections.

If you want, you can open up the reflections demo scene available from the launcher and see what I’m talking about within the engine already done.

Thank you for that very extensive answer. Downloading the demo was something I haven´t thought about yet and it surely helped me understand how I am supposed to deal with reflections.
So the end result is as follows: Reflections use SSR when they don´t destroy my performance. SSR doesn´t do its job, when I look downwards. The only way how to deal my problem is a Scene Capture Cube then. Before I start: Are rough materials the better way to go?

Mirror-like reflections do show a lot more artifacts, this is true for any game or engine. Using just a bit of roughness can eliminate a lot of those, or you can try adding some normal map variation to help hide issues as well. I would try to just use mirror-like surfaces on things that need it, or things where you wouldn’t notice issues.

That is a really good advice. I played a bit around and think I tackle the problem by changing the materials (normal maps and roughness variations). That gives me still the clean and hard look, but makes the eye focus less on the reflections. I guess that is the most elegant solution to my problem.

I just wanted to add a question: Is there an option to add something like bounds in particle systems (there the gpu also reders stuff offsceen). As far as I understood it the scene capture cube costs that much rendering power because it renders a large amount of the level, although I dont see it. Bounds would extend the field of view, so that my ssr works a bit further then it does at the moment. I would just need a few cm extra srr, so that someone could move his head downwards 20 degrees without noticing.
I am sorry when this question is stupid, but it just came to my mind and I would really like to know.

Reflection captures are MUCH cheaper than rendering a larger resolution and cropping in.

Uh, that is really good to know. Just to try that out as well: How do I set that up? And also: How costy is it in the end?

The easiest way to see how well that would work would be to set the resolution to something like 1440p and cropping a 1080p image out of the middle of it. 1440p has 78% more pixels, and is roughly 78% more demanding.

Maybe in the future UE4 or a game engine would support foveated rendering and allow rendering a larger screen at lower resolutions around the edges to allow SSR to reflect stuff that is off screen. But that isn’t possible right now.

Ok, I see.
My last question was actually about the Scene Capture Cubes you mentioned. I would like to try to setup those. Is there a demo or something where I can have a look into the materials etc.?

Thanks a lot!