Screen Space Reflections for BaseParts

Great feature, Roblox Water has it and believe it or not if you look closely it has tons of detail and the resolution is pretty good but deformed by the water. We already know they can add it so long they optimise it a tiny bit and giving us more specific settings for this kind of stuff.

BeamNG.Drive has special settings for Dynamic Reflections (SSR) such as Update Time, Detail, Resolution and Distance. If they add those kind of stuff then they should also add other settings like Shadow Quality/Resolution or even Texture Detail.

1 Like

They can just lower the resolution or Level of Detail of SSR when they reach too far away. A better solution would be to only capture large objects at a distance.

2 Likes

It would be if it would actually want to actually use the GPU instead of CPU when needed.

1 Like

This should definitely be looked into soon. SSR isn’t that too costly to produce for simple puddles or flat flooring, but if you want to go as far as mirrors, then it becomes pretty costly.

I feel like materials and their metalness/roughness maps should definitely have a bit of SSR, similar to terrain water, as it will just give very pleasing results, even if it is a bit limited.

10 Likes

Yes, I have fixed the mistake. But SSR on normal BaseParts should work for SpecialMeshes because they are more like properties in that they are sort of like a custom Part.Shape value from my understanding.

1 Like

There is no reason not to add it, water is already using High Resolution, High Update Time and High detailed reflections just without range and another issue is distortion. The only reason they’ve not added it is because it gets very laggy when you have 2 objects reflecting each other.

For instance:



These reflections would look better undistorted, the only way to remove that is locally by going and deleting the water distortion texture in your files. This effect was done with Water and made better with simple tricks.

5 Likes

Roblox needs this feature. It will make it easier to make realistic games.

7 Likes

Not a new thing. Roblox water uses it which means it is likely already somewhere in the render pipeline. Water is sadly too distortive and big to use for actual reflections. This type of reflection should at least be available via a seperate material (such as refraction only being available to glass), but hopefully it’ll be fully integrated into the PBR pipeline!

2 Likes

Mobile devices are getting better and better every year, my iPad from 5-6 years ago can run FIB games really easily and smoothly. (although it drains fairly fast)

4 Likes

Working on an outdoor rainy environment at the moment wishing Screen Space Reflections were a reality in the engine. These PBR puddles would look incredible with a hint of reflectance :pensive:

Hopefully an engineer on the engine team considers this feature soon. Would certainly be an early Christmas gift for builders across the platform.


As a side note, I’m seeing many posts pointing out the fact that water has SSR (which it does) - an engineer commented on this when asked why it’s unavailable for parts:

Looks like it might be a lot more complex than it seems at first glance. Keeping my hopes high though, maybe we’ll see this revisited soon.

6 Likes

SSR is already in roblox? The terrain water material has screen space reflections by default. I don’t think optimization would be a huge issue since most optimization issues are player cause, or cause by generally bad methods of doing things.

2 Likes

If I remember correctly, it’s really just an approximation that only works because of the water’s waves making it look less bad. It would not work properly for regular parts.
Edit: Original post

1 Like

Actually, a lot of other game engines allow you to put SSR on anything, it’s just that they have a decent fallback when the SSR can’t reflect anything because those things are offscreen, AKA parallax-corrected cubemaps.

On Roblox however, the only possible fallback in case SSR can’t reflect anything is either the skybox, or the kind of bad indoor envmaps.

3 Likes

You can remove the waves to see what it looks like without them.

The result is very acceptable.

image

12 Likes

This is definitely an interesting test-case. I honestly wouldn’t mind if the reflections weren’t super clear as you outlined in this post, they still look really cool.

Perhaps if this is implemeneted, the reflections could be blurred to hide jagged lines or rendering artifacts as a result of optimization.

Regardless, I’m still very excited for SSR - I’m fully confident it will be an invaluable tool in creating realistic games. The platform is headed in this direction anyways :sweat_smile:

5 Likes

And I think ROBLOX’s reasoning for NOT implementing this is because “Low-end devices wouldn’t be able to handle it”. So, to solve that problem, allow devices that CAN handle it to have it.

5 Likes

Actually, I think the only reason that someone at Roblox has given so far is that the water shader was only designed to work on water…

Anyway, I think the reason they do not want to implement other features like Surface Projection is because they want all features they implement to work on all platforms, except for the purely visual ones, like grass sway. This makes more sense in the case of the Surface Projection feature, because that can be used for puzzles etc.

But, screenspace reflections is definitely a feature they should implement.

4 Likes

I’d like to mention, although i don’t have an example, roblox does have a very very scuffed “dynamic cubemapping”. I can’t possibly explain this other than the engine just taking a new cubemap for reflections every few minutes or seconds.

1 Like

Oh yeah, THAT feature. I’m still wishing that they would have listened when people asked for manual cubemap place, the ability to disable them without setting specular scale to a low value, and just more control over them in general.

2 Likes

A potential alternative to SSR is parallax corrected cubemaps. We already have cubemap reflections, and now cubemaps that are taken at point points across a level, albeit automatically. Valve has been using parallax correction on their cubemaps for decades now.

Ex: Local Image-based Lighting With Parallax-corrected Cubemap - Youtube

It is definitely not taxing on performance like SSR, most people wouldn’t notice a difference, while low end devices can have it automatically turn off at lower graphics settings like many things already do. I don’t see why the argument of, “it can’t be implemented because mobile devices wouldn’t be able to run it,” when Roblox literally spent so many resources making FIB 3 a thing, last I checked it doesn’t quite work on mobile.

Parallax corrected cubemaps, along with the ability to manually place the cubemap capture locations, would be an amazing addition to Roblox for environment fidelity, while hardly affecting performance. As great as SSR would be, the caveats of the tech and hurdles of implementing far outweigh the potential improvement it could add to most experiences. Parallax corrected cubemaps on the other hand, are the way to go.

4 Likes