Figuring the voxel lighting grid boundary for Roblox Lighting

Keeping this short but there’s a lot more to it, If you’re a environment artist on Roblox you may have noticed that the lighting Roblox provides cuts off at a certain distance, it can also cut off very short when you’ve set graphics to a lower setting.

TLDR: Made some code which calculates the extents of where the voxel lighting grid is active on the client allowing you to know which light instances aren’t rendered, or in render boundary. Not perfect yet but it’s good enough.

All this information about figuring the voxel lighting grid on the client is all derived from the Camera Focus property, as that is what allocates the resources to render lighting detail & other stuff at a said location, the actual research behind this used Roblox’s Studio debug tools & math to achieve.

If you want to demo this out here’s a place I’ve uncopylocked so that you can see the wicked code behind this, would appreciate being credited if used for custom LOD tooling as this took some time to accomplish.


Place link (Uncopylocked) : Voxel Lighting Grid Visualizer - Roblox

And here is a video to showcase, reminder that the white circles are lights that are being rendered via Focus property, the bounding box is in green which is displaying the bounding render extents for the light grid relative to where the Focus point is, blue is the spatial partitioning thing Roblox uses to render chunks in the voxel grid, red circle is the focus point being displayed.

Overall, have fun with this tech, thought it’d be cool to show off.

Credits to Iris as the debugger UI, and lastly to Ceive ImGizmo for the visual rendering.

15 Likes