Higher Resolution and Improved Shadows

implement a system that mipmaps the shadows so the sharper ones are up close whilst the ones further away are softer.

That’s cascaded shadow maps and Roblox uses it for future lighting

6 Likes

Ah cool, then this should.be doable no?

1 Like

maybe this isnt super relevant but it could be a good option for developers to make their own menus with detailed settings eg FH5 settings instead of robloxes default esc menu. this could tie in nicely with the custom developer made escape menu where developers can make tabs specifically for graphics settings

1 Like

It will rlly amazing, but i think will amazing if we can change (maximum) resolution also!

And i think was amazing if roblox added invisible parts with cast shadow so then we can do shadow of character or something else and it will look so amazing!

It possible do with bug ofc but supported only some OS / Devices (as i know only Windows and Android only correctly to that, Apple devices nope, Consoles idk)

And roblox lately seems trying be more realistic, so if they are want then why they dont add it?

2 Likes

It would be really cool to get baked shadows which would improve performance seeing that they have no update event, and the boost in performance could be used to increase its fidelity instead.

6 Likes

i think roblox scared a bit cus then ppl want to mix baked and non baked together and they suddenly have an intire dev community asking for it

Pretty sure those shadows werent much harder to compute than standard shadow maps. What Doom 3 used were called stencil shadows which basically rendered the rough shape of a model as the actual shadow. This is why those shadows appear to be so “high resolution”. They arent even high res, they just pretty much render on a per-object basis at native resolution.

nvm gang i didnt even read the entire post. Im blind.

Roblox at one point DID support stencil shadows too but they eventually remove them in favor of the voxel light grid.

Stencil shadows do have a lot of disadvantages. Right now Roblox uses EVSM shadow maps. Currently the sky light uses 2048x2048 for its shadows. Even if you raise it to like 4096x4096 you wouldn’t get a massively noticeable improvement in shadow quality unfortunately.

Stencil shadows can work on Roblox, especially with the inclusion of Occlusion Culling which would have been necessary for performance with these types of shadows to prevent overdraw.

Roblox could further optimise stencil shadows to send a buffer of shadow casting models to reduce the amount of draw calls to the GPU.

Also doubling the shadow resolution from 2048 to 4096 does infact increase fidelity in Roblox, you can see it evidently by doubling the “scale” of everything in workspace as this shows what a 4k shadow map would look like compared to a 2k map.

1 Like

No that’s not how shadow maps work though? Increasing the res from 2048x2048 to 4096x4096 wont magically make them look higher fidelity. The reason why you are getting this effect on increasing the map size, is just how EVSM shadows work. I have EVSM shadows in my own little DX11 engine like Roblox, and I can tell you that even at 4096x4096 the quality wont magically look much different.

Large objects in EVSM shadow maps will take up more texels, this is why you are getting “better” quality.

Doubling the shadow resolution from 2048 to 4096 does increase shadow quality.

Better precision, detail preservation and fewer artifacts which means higher accuracy. You’re not seeing the difference because of scene scale or camera distance, close ups is where you’ll notice it.

And obviously you have to also increase texel density to see the difference.

1 Like

This is really interesting, I just wanna ask something. By scaling up workspace, do you mean scaling every single object in workspace by say, 2x, 3x etc? Or is there some sort of special workspace scaling thing I don’t know about? Wouldn’t this cause some odd issues with physics that would need to be adjusted? Specifically I’m thinking about how 1 stud would actually be 2 studs, and odd gravity. Among other things that aren’t immediately popping up in my head

There’s a property in Workspace under “Pivot” called Scale. You change that from a 1 to any number you please. That’ll give your game the illusion of better shadow fidelity.

1 Like

Also I researched the EVSM shadows a bit more, the reason why closeup shadows are so bad in resolution seemingly isn’t the sun’s 2048x2048 shadows, rather its the issue that each cascade of the EVSM shadows are NOT even using a closer distance, so you would be expecting cascade 0 to be CLOSER (even though its orthographic yes, but it should basically cover a smaller area giving you more precision!) but it DOES NOT, every cascade is at the SAME distance and covers the same area, this is why shadows seemingly do not degrade in quality at a distance, but this means closeup shadows also do not look very “good”. I backported the EVSM shadows nearly 1:1 into my own thing and I raised the resolution to 4096x4096 and I can tell you it does not improve the quality immediately. The cascade issue is a larger problem they need to fix. Its weird because if each cascade renders like this, it defeats the entire purpose of shadow cascading all together, so I don’t really know why they did it like that.

Roblox shadows are unfortunately so noticeably low detail once you start working on larger projects, and I wish they focused on giving more control to developers rather than forcing one global improvement for everyone