Improve shadows in spaces with high ceilings, or add shadow volumes

As a Roblox developer it is impossible to create worlds with impressive verticality that have attractive lighting.

In my game, players can fly indiscriminately, and the setting of my world requires tall trees and caves and other extremely vertical natural structures.

Overview of the map in my game

If your ceiling is too far away from the floor, depending on the conditions when the client enters the space or approaches the space, the floor will not be appropriately shadowed by the ceiling. This occurs on all lighting modes, from voxel to future. This looks embarrassingly bad, and there is no sane way to work around this problem (nor any insane way that I am aware of), other than to waste time trying to design the space so ceilings are the perfect height, or else sacrifice creative vision.


In an ideal world, Roblox would render more distant lighting chunks within performance limitations, and similarly allow the objects in lighting chunks much higher up to influence the chunks much lower below.

If there is no way to automatically do this within performance constraints, Roblox should allow developers to define shadow volumes; areas of space where there should be no lighting influence from the sky, only from lights in the world. This would allow me to appropriately shadow large overhangs and caves with lots of vertical areas without forcing me to make less impressive worlds.

Roblox has a tendency to outright shut down any feature request that relates to physical simulation of lighting if it does not have a real world analogue (reflection probes are a good example) in favor of an automated solution. If the engine cannot light these spaces correctly, and there is no feasible automatic solution, do not just leave developers to put up with this ugly looking nonsense. Roblox is pushing towards higher graphical fidelity almost every quarter, but the harsh limitation of shadow range keeps dragging it back. Let developers have control of this if there will always be these kinds of range limitations for shadowing.

Sad pictures:

Cool pictures

99 Likes

I also support having better support for high ceilings/low floors - in my voxel game Blox, I wouldn’t be able to make use of a manual solution such as shadow volumes because everything is procedurally generated. Cliffs and deep caves would look a lot more impressive if they weren’t lit up as bright as daytime.

35 Likes

Bumping this- making a “jaw-dropping” map in Roblox with any scale is a funny thought right now. I have skyscrapers in a render demo of mine when I was trying to create a chunk loader- it was so awful looking at the shadows jarringly cut. If any player saw that, it would be an instant immersion break.

17 Likes

We need a way of choosing which shadow chunks are loaded and how often they update. (Perhaps a way to change the voxel size as well?)

4 Likes

I’m honestly afraid to publish my teams game because of this. It makes amazing builds look absolutely awful. The worst part is, there’s no workaround. None. WHY???

5 Likes

If Roblox wants to call itself immersive (which it already constantly does), they need to fix this issue as a first step. Genuinely one of my biggest issues with the engine.

3 Likes

they’ll take like 4 more years to even acknowledge this post if we’re lucky

8 Likes

Going to go ahead and bump this- underground areas look absolutely awful right now, and doing any kind of “cityscape” will result in some really weird shadow cutting.

13 Likes

Oh I don’t anticipate them acknowledging it at all; feature requests have no good internal process right now. I will repost this in a few years when the situation has hopefully improved. I still wouldn’t expect results though; rendering related asks are like yelling into a black hole.

11 Likes

I would like to bump this again. Making anything reminiscent of a cave system or an expansive laboratory (like the Portal games) usually do not turn out very good without excess manipulation of the game’s lighting, which makes other aspects of the game turn out worse. Just having more control over shadow volumes would do the trick, if not adding support for larger lighting chunks.

4 Likes

Dynamic Tessellation would be a unique addition too, adding extra geometry details to models in real time, for more detailed and complex surfaces without increasing the base polygon count. This could also be used for shadows.

Screen Space Reflections which provides reflections by using screen-space data. Which would visually enhance the quality of reflective surfaces.

For your idea, they could do almost hybrid shadows, which blends shadow volumes with traditional shadow maps. Combing the strengths of both, providing high quality shadows with low performance costs.

3 Likes

I have hope that with the new voxel lighting system announced last RDC that we’ll get improvements in this area. If it’s based off of zeuxcg’s hack week 2015 project then hopefully they’ll be using lower res voxels for distant scenery and allow for shadowing to be pushed out further into the distance.

3 Likes

Bumping this too, I have no clue why Roblox has an ugly shadow cutoff (noticeable in my game which isn’t even meant to be very realistic) despite all these years later.

1 Like