Better reflections

Material reflections are really and I mean really bad. I can literally count the pixals on the reflections :sob: The attatched image shows this. Heres how you can fix this, first make the reflections actually warp around. second, make the resolution of them go from 64x64 to atleast 512x512, next, show the player on the reflection and show the render of what it would look like on max graphics

11 Likes

Ur right this is bad u shouldn’t use materials for a mirror use a billboard with hard written scripts in it

That’s not really something that’s possible with this reflection method.

What roblox has for these reflections are cubemaps, they take a screengrab of a room and apply it to a box. That textured box is then projected as a reflection.


These reflections only really work when you aren’t actively updating them. As they are a texture mapped on a cube, they are incapable of reflecting players properly at all, and attempting to reflect them would cause very obvious and ugly artifacting.

Incase you don’t understand, here is a screenshot from a VRChat world which uses cubemaps as reflections, and you can see pretty clear artifacting with them.



This is of course, not even considering attempting to put moving player models in the reflections.

What these reflections are meant to be used for is something like this:


In this screenshot, you can’t really tell that the reflections aren’t live. You only really ever notice when you notice that moving objects aren’t reflected, or when you go shove your face in them and notice the pretty clear cubemapping.


Without raytracing the reflections, you’d have no other alternatives that also get the entire room behind the mirror. Screen-Space would reflect the player sometimes, however, due to the screen-space nature, would have its downsides, like not being able to reflect backwards.

Rendering things multiple times also isn’t really an option either. It’d run terribly, especially in scenes with a lot of reflective surfaces. The engine would have to determine where to put a reflection camera that makes sense for the surface its reflecting off, then it’d have to consider model geometry to determine how things are reflected, and it just gets very messy very quick.

I do agree the resolution should raise, however it should be raised with graphics quality and not be a flatout increase across all qualities.

4 Likes

planar reflection or screen space reflection should fix this problem, no?

For screen-space, they will not work as they do not render objects backwards. They sample what has already been rendered and use that to “reflect”. Screen-space works in most cases, and often is the best option, but for what OP requested specifically, showing characters in mirrors live, wouldn’t work the best in screen-space reflections. At minimum, you’d need screen-space raytraced reflections to do that.

And planar reflections only work on flat surfaces. From what I know, they do run well and reflect correctly, however the requirement of a flat surface makes it not that scalable.
However, the only reason planar reflections are so accurate is because they are re-rendering the scene from the perspective of the reflection, which would get very expensive very quick.

And of course, we’re talking about roblox here. Every shader system has to be automated, and they want to keep visuals the same on PC and Mobile, which would mean that they’d need to implement a reflection method cheap enough to run on mobile and allow it to be automated without degrading performance. This is why they chose cubemap reflections instead of screen-space or planar.

I should also bring to attention that with the reflections on roblox, you aren’t meant to be using them for mirrors. They’re supposed to reflect the general environment onto objects, such as a car driving through a tunnel reflecting that tunnel, or a hammer in a blacksmith shop reflecting the blacksmith shop, which the cubemap can do very well, given it’s at least 256x256px.

I’d be very nice if roblox could implement better reflections, but I really don’t see it happening any time soon if ever at all with how roblox wants to treat graphics and parity right now.

How does implementing Roblox AI reconstruction which btw, is far more resource intensive than these reflections, for mobile devices?

I’m pretty sure the AI side of it isn’t being ran on the device. I can’t verify this since I literally cannot play the game, but I did see people complaining about latency, which would be easily explained away if the images were being generated on the server and then sent to the client, so the AI most likely isn’t being ran on the client.

To further backup the statement that there is no AI model on the client, the filesize of Roblox itself hasn’t jumped at all since they released it. It’s still around 6.5GB, which if there was an entire AI model suddenly in the application for the sole purpose of having this one game work, the application would have easily gone up to around 10GB to 15GB.

And again, there really aren’t any good options for reflections that roblox can take for this. They can bump up the resolution of the cubemaps, sure, but adding proper live reflections is a massive trouble, especially with a company like roblox which wants all their systems to be automated so developers don’t need to struggle with a million systems.

Cubemaps are completely incompatible with live-reflections, and as I said, they are simply meant to give the general impression of reflection, not to be used as mirrors. As I have also shown, given you can use them as mirrors, they won’t work as live-updating mirrors reflecting players, and they also barely work when you actually look closely at them.

And of course, we’re talking about roblox here. Every shader system has to be automated, and they want to keep visuals the same on PC and Mobile, which would mean that they’d need to implement a reflection method cheap enough to run on mobile and allow it to be automated without degrading performance. This is why they chose cubemap reflections instead of screen-space or planar.

this is such an awful excuse given how i see other game engines is able to implement the afromentioned, which works on mobile as well

we’re not living in 2015 where phones had weaker socs than desktop, rather nowadays mid-range to higher-end mobile socs are literally outperforming x86 chips along with their integrated graphics reaching desktop-like performance

same could be said for entry-level pcs, back then it was objectively terrible, nowadays the gap is closing

i have no idea why roblox could’ve kept some of the expensive reflection methods as desktop & console exclusive, locked only for mid-range to higher-end phones

they already want developers to build high-fidelity games, yet this engine is far from it, and when people feature-request higher fidelity features, they’re either met with radio silence, a no, or justify using their stupid ‘one click automatic’ philosophy which is another obstacle for artists who want to fine tune the visuals in their game, and doesn’t even work in the context of rasterized renders

this company has no clear vision on what the hell they want to do

1 Like

Unfortunately roblox chooses to still support the older rendering APIs which are incapable of some effects.

Hell, it took roblox until early last year to end support for Windows 7. Unfortunately they choose to support such a wide range of devices that they’re held back in what they can do with graphics because of it.

Because roblox wants full parity with visuals across all devices, even if a game doesn’t support all the possible devices.

Hopefully roblox eventually implements at least semi-custom user shaders, even if they’re node-based. Sure, it’s probably not gonna help you get reflections, but at least you’d be able to adjust lighting and shadow ramps.

They do whatever the investors want.

2 Likes

remember this? The Mirror | Play on Roblox i think they used a script to reflection

Pruébalo en el cliente (Roblox Player); a veces Roblox Studio no estå tan adaptado como el cliente. A mí me pasó.

1 Like

what even are material reflections

1 Like