Parts should reflect other parts or terrain - allow custom reflections

As a Roblox developer, it is currently impossible to make parts reflect anything but the sky. This can be problematic when the game takes place both outdoors and indoors and there are reflective objects inside. With the addition of PBR to Roblox engine, it would be nice to add reflection probes or voxel global illumination (using voxels to simulate light reflecting onto things and bouncing off of them. Kind of like realtime raytracing but before realtime raytracing and at a much lower resolution) as well.

If Roblox is able to address this issue, it would improve my game and my development experience because if I were to add reflective objects to my places (for example, make the floor on my field ice or metal) they would reflect objects around (such as the gates), making the game look better and more realistic (and lack of realism does not seem to be the current vector of Roblox in terms of graphics).

10 Likes

This is not technically feasible on Roblox - here are some of the primary ways of doing reflections as you describe;

  • Screen space world reflections, which don’t reflect anything that you can’t already see. Roblox water uses this only because the reflections are distorted enough to mask the effect; however the illusion breaks at the screen edges.

  • Reflection probes; essentially dynamically calculated reflection cubemaps. Roblox likely won’t implement these anytime soon for the same reason that they haven’t implemented camera frames - it’s too expensive to render six views of the world per probe plus the screen view. (not to be confused with viewport frames, which don’t render a view of the world in realtime, but instead render a heavily optimised view of a model to an image to be used like an image label)

  • Ray traced reflections; I’m willing to bet 99% of Roblox players aren’t rocking the very latest graphics cards on the market. Even then, it’s still far too slow, and only good for rough reflections at best.

  • Rendering the world multiple times; way too expensive, same reasons as reflection probes.

Please don’t suggest this any more - it’s been suggested more times than I can remember and it simply can’t be implemented viably. Roblox engineers are already aware of the interest.

2 Likes

I’d be more than content with CubeMaps, personally. You could have an indoor environment that has an actual indoor reflection to it, without causing the user’s PC to crash.

These images could be created / destroyed upon being closer to the nearest CubeMap, say within 60 studs (this value could be changed by the developer.) These 6 images would be stored in RAM, instead of being uploaded to Roblox. Compress each of them down as a JPEG and you have 6 images that barely add up to a megabyte in size in total.

If there’s no CubeMap within that range, it defaults to the skybox reflection we have now.

5 Likes

I’d also like some kind of cubemap support personally! I was just discussing what the OP brought up.