Add controls for reducing shadow complexity

As a Roblox developer, it is currently too hard to create detailed builds with ShadowMap without taking a severe performance hit. This is because there are many decorative parts in my builds that do not contribute in any meaningful way to shadows, but still have to be computed anyway. This leads to unnecessarily poor performance on builds with lots of detail.

Some developers have attempted to solve this issue by disabling CastShadow on all parts and selectively re-enabling it on parts where the shadows are important - however, CastShadow was not designed for this and the practice results in visual artifacts:


CastShadow is off on the red part, and on on the blue part

We should have a proper way to tell the engine which parts actually matter for shadow casting. One option could just be to find a way to resolve the CastShadow artifacts.

If Roblox is able to address this issue, it would improve my development experience because I’d be able to create more performant experiences that still look great.

9 Likes

Yes please. We have maybe 6000 pieces of road with nothing underneath. Yet they cast shadows in meaningless ways.
I’d love more control to better save performance for our players.

1 Like

After doing some quick testing, there’s a noticeable difference in the quality of the shadow on objects that have CastShadow turned off. Ideally the shadow casted on the red part should always be the same.

[using shadowmap in video, but future also has the same issue]

3 Likes

just use voxel


Jokes aside, we should really have more options in the lighting service for quality. Additionally, baked shadows and raytracing would also be nice here as well as fixing occlusion shadows in non-CastShadow parts.

1 Like

Unfortunately this is a limitation of the method used.

1 Like