How can we fix that SSR is reflecting a mesh close to camera?

Hello dear Answerhub.

[Problem]

The current problem that we have is that the SSR is currently reflecting part of our 3D HUD hovering in space in the world. I assume that it might be an inherent problem in using SSR, and any work-around or solution would be appreciated

[Attempts]

Material

  • Currently we have tried to change the HUD material type, how it is used in the world but with no result. From other answers here on answerhub I have gathered that any change in the material will not have an effect on the SSR. The only way to affect it would be to use less reflective surface which breaks the aesthetic

  • Looked into moving the HUD to Post Processing but it would problematic for other aspects of the HUD.

[Not yet attempted]

So far the only other solution that I have not yet attempted is to go into the renderer and create another buffer to use for drawing the HUD and in Postprocessing, add it back onto the final image which I think would solve it.
Temaran from the forums added a custom buffer to the engine which would be my starting point of solving the problem.

Any ideas to a solution would be appreciated :slight_smile:

Thank you

Hey ,

So there are two viable options I see in how to avoid having your 3D Widget not reflect. Since the 3D Widget is an actual actor placed in the world, it will affect the reflective environment. You could either make the widget render to the ‘Screen’ instead, or you can do as the user suggests in the forum post link you provided.

You are going to need to set up a custom pass which will come after the reflective environment is calculated so it is not affected by the scene reflections. Unless you desperately need the widget being rendered in World space, the simplest solution would be to set it to render in ‘Screen’ space instead.

Let me know if you have further questions.

Cheers,

Hello !

Thank you for your answer and it made me rethink the problem a little bit.
The screen space rendering is unfortunately not an option as a 3D HUD is a must have. The screenshot that I displayed was built as a mock-up of the problem and is also built using static meshes. 3D Widgets can’t get a good solid feel to them thus not usable.

[Potential Answer]

We found a bug a while back that FXAA&SSR does not handle translucent materials too well.(Using FXAA with translucent SSR produces incorrect results - Rendering - Epic Developer Community Forums)
When we assigned the 3DHUD material as a translucent with SSR rendering checked, then the SSR disappears for static meshes!

The tradeoff here is that we are exploiting a bug in the SSR-Translucent handling so we can not switch to Temporal AA if people want it.

Temp AA - SSR checked in material

FXAA - SSR checked in material

Hey ,

So I ran some tests and found some helpful information that you can use and apply to your own set up. So the ‘bug’ you referenced is actually not a bug, but how SSR is calculated when used with FXAA compared to Temporal AA. We know about this limitation, and there is not much focus on FXAA, so addressing the limitation and solving it is not the highest priority.

With that said, because translucency happens in its own pass, if you use a translucent material blend mode with your World widget UI, you can get a clean reflection when used in conjunction with Temporal AA.

Below are the comparisons between a ‘Masked’ blend mode and ‘Translucent’ blend mode. You mention you are using the SSR option checked in the material. However, I am not able to render the material as a widget in the World or the Screen unless the ‘Material Domain’ is set to ‘User Interface.’ As soon as I do this, the options for SSR are no longer there.

Material Domain ‘User Interface’

Transparent ‘Blend Mode’ in Blueprint

Transparent SSR

As you can see this is much cleaner than the masked screenspace reflections as seen below.

Masked SSR

As you can see, Temporal AA really does not like masked materials when used with SSR. I would stick with either Opaque or Transparent blend modes when render widgets in the World with UI.

If you have further questions, please send some screenshots of your specific set up so I can take a further look. What you have encountered is essentially a limitation of Temporal AA with Masked materials and the reflective environment. This is something we are aware of, but there is not a lot of focus on improving this limitation at the moment.

Cheers,