Let There Be (Unified) Light! Unified Lighting Enters Studio Beta

This is a really great thing to point out, and it’s definitely something that I have encountered myself before. But this issue isn’t exclusive to Roblox but in other engines like Unreal Engine 4 and Unity as well.

The main issue lies in the GPU workload and how it scales with distance. Extending per-pixel shading (like PBR) indefinitely is impractical because, as objects get farther from the camera, they occupy less pixels on screen. Despite this, the GPU would still need to calculate the more complex lighting and shading for these tiny areas, which quickly becomes inefficient.

This is conceptually similar to why “Quad Overdraw” happens in 3D engines. If you do not implement some kind of LOD system for distant meshes with very dense geometry the GPU might end up shading many pixels that contribute very little to the final image. Without LODs, these computations can cause significant GPU slowdowns, especially when dealing with complex shaders.

In Roblox’s case, the voxel light grid very likely plays a role here. Roblox engineers knew that Voxels (especially at the time of when Roblox first released on Mobile) are just very performant and cheap. Since Voxels are aligned to a world-space grid rather than relying solely on per-pixel lighting and also being able to be calculated on the CPU, they are quite efficient and don’t need very strong GPU’s, but due to voxels being very “coarse” there is no real way to properly implement PBR/specular lighting. Now at one point they did have a technology called “VoxelGPUCascaded” when future is bright was in the beta phase, this technology did have specular lighting for voxels, by having voxels be done on the GPU and also having the voxels be in a far more smaller size, meaning they were more “accurate”. But the technology was scrapped because the mobile user base at the time, would just not have adequate enough performance to support that technology.

So what happened is that they just decided to use future that we have today, and use a “hybrid” approach to fade out the distant lighting and fallback to the underlying Voxel system.

Anyways I guess that’s one way to explain it, I might be a bit incorrect as I am not that experienced with 3D graphics to such a low level yet.

11 Likes