Trying to replicate 8 year old game's superior SSR method for Real-Time Photorealism.

So our game is a cinematic stealth action game(at minimum) aiming for two things
Photorealism and running at 60fps on modern RT GPU’s @ Hardware recommended resolution. Given this may not be possible with Lumen+Lumen Reflection and Nanite for our performance goal, our scalability will be very specific and we may have to rely on SSR for the reflection aspect for default settings.

ㅤㅤThe thing is, one of the best engine/games I’ve ever seen was FOX engine’s MGSV GZ/TPP on PC. Day/Night Cycle(which our project requires) and is extremely performant in deferred rendering while also keeping very good photorealism.

ㅤㅤOne of the more subtle thing I came across was its use of screen space reflections. These are not only softer looking than UE4/5 SSR but in day time, these reflections are not just cheap(for modern cards) but give the impression of bounce lighting(like SSGI).
Take a look at these screenshots, especially the day one when it’s not raining.

Please continue to read the rest as I make some serious suggestions for UE5 scalability.



Last image (link below) showing reflections in a puddle and reflective surfaces.
https://international.download.nvidia.com/geforce-com/international/comparisons/metal-gear-solid-v-ground-zeroes/metal-gear-solid-v-ground-zeroes-screen-filtering-screen-space-reflections-comparison-2-on-vs-off.html

Thanks for reading and hopefully I didn’t write this for nothing. If you have a way of achieving the results I posted in the images please share. Would love to hear back from anyone.
Here is a post I recently made, note I wrote this before I started reading the UE5.2 documentation. But for record my opinion has not changed on the subject.

And here is a link on the Fox Engine and some of the stuff that make MSGV look so good (Now out of commision by Konami for using UE5 in favor)

If anyone has information of view dependent roughness in Unreal, I would be extremely interested in hearing or viewing a solution (I’ve done minimal research but It looks great in Fox Engine)

1 Like

This is normally referred to as the Fresnel effect and I’m fairly certain some amount is automatically applied, but you could manually apply Fresnel to the roughness if you want.

2 Likes



You can play around with the fresnel node to get diffrent cut off angles

Edit-Delete, forgot reply button.

That looks pretty good. Thank you for the blueprint and photos.
I’ll be experimenting with that in our project.
I heard of the Fresnel had problems but this looks pretty good to me.

Hopefully I can tweak the material more to get closer to that “soft bounce” lighting look in the first photo/third photo. Like a dry concrete floor receiving and projecting SSR information as a more soft bounce look (like the first photo).
That’s the biggest goal.

Do you mean something like this?


(The left material is quite similar, just a little more complex with some dirty and normal maps)

As you can see it’s quite easy, just adjusting the values to your needs. But maybe the quality of SSR inside the Post Process volume can help too (better performant if you can achieve it too without raising the Quality value, but I already had it in my scene).

1 Like

just a little more complex with some dirty and normal maps

Yeah, that’s spot on from the looks of it. Can you screenshot the material BP nodes so I try to apply that look to some dry concrete assets?

Thank you for the example shot. I just woke up so I haven’t tried anything yet.

1 Like

So I’ve been tinkering with some common assets and still running into the same problem.

My photo realistic assets look wet whenever I try to utilize SSR. Look at the concrete. Can’t share our project so just imported some stuff in City Sample. No lumen is enabled. And note the recording hides the wet look.

Here is my material. We are trying to keep material complexity in the bright green which the material texture set up here does very well. We will set up all our assets like this. Can’t figure out how get that bounce look without making it look wet and I need to keep complexity in the light green.

Our game uses that same wet look when it rains so players will be extremely confused with the way it looks in regular sunny weather mode.

1 Like

Video

Dry


Wet

Mat complexity (F5)

Sorry for lower quality setting but I’m still on a 1050ti

1 Like


Full shot of master material

1 Like

The wet look is the same in our game.
In both our game and MGSV we just lower roughness and add rain effects.
But I want to utilize SSR on extremely dry looking surfaces. I’ll post another(better) photo for what I’m trying to achieve.

Hi Solid!

Unfortunately I couldn’t show the whole material, but you just need to use a roughness texture and a normal one, to add those extra details.

Anyway, I think you are not working fine with the SSR values, as they are too much mirrory. Try to not use Virtual Textures. Are you using Epic quality?

1 Like

There was a GDC presentation about how stochastic SSR was implemented in the Frostbite engine that is pretty interesting, includes per-pixel diffuse reflections and contact hardening:

You may need to alter a cvar for that. I think it’s
r.SSR.MaxRoughness
There’s a similar setting for Lumen reflections as well.
I think it’s like 0.4 by default.
Increasing it does have a performance cost as you’ll be increasing the number of pixels that reflections need to drawn or traced

r.SSR.MaxRoughness

All that does (for me) is lower the range of SSR reflections. The reflections themselves don’t look different.

Thank you for sharing that. A little beyond my skills but I’ll keep it under my belt for future employees who can hopefully replicate that look without HWRT .

Heads up for anyone reading and thanks to the people above who helped me find the right path on the correct research, the SSR shown in MGSV example is combined with very subtle fresnel.

Replicating the result in the first MGSV pic, bright colored objects will appear to give “bounce light” on the material below

But the bounce effect will only work r.SSRQaulity 3 is enabled(either by Cvar or PPV) becuase any quality lower will result in mirror only reflections which is why I kept getting an overly wet look on dry materials.

r.SSRQaulity 3 is extremely expensive compared to MGSV’s dry use(as in dry texture) of it which was extremely cheap. UE’s SSR requires blurry or expensive TSR/TAA to remain jitter free and the Frostbite’s implementation in SWBF2 is twice as fast/TAA independent and looks better in general tbh.

EDIT: Unreal has temporal stochastic SSR but requires some loops holes to get enabled.

1 Like