Bring Ambient Occlusion to Future Lighting!

Future lighting is meant to bring us everything for the best visual fidelity on Roblox, one that should be obvious is Ambient Occlusion which is very minimalistic on Future Lighting and EVEN MORE LAGGY than the one we can see on ShadowMap.


Even changing the Ambient DOES NOT adjust the darkness in these places, Ambient Occlusion from ShadowMap Lighting can mask away the fact that light leaks through thin objects and in particular, meshes with tight areas.

Despite how ShadowMap’s Ambient Occlusion may not be the most accurate due to it having high influence from the screen and visible content it does not impact performance at the level Future lighting does which even worse Graphical Fidelity.

I wish Roblox gave us the exterior capabilities of Shadows from ShadowMap and mix it with the Lighting technology from Future Lighting so that we get best of both worlds with less performance issues because we’re using ShadowMap’s better AO.

PLEASE ROBLOX, PLEASEEEEEE.

21 Likes

I still wanna know why this is missing.

Apparently it still exists but it’s a lot less subtle for some reason to “preserve realism”
I dunno, it should just be an option for AO to be either subtle or minimal

1 Like

It’s less subtle because it’s rendered at a lower resolution, which is the main reason to why Future is running faster than ShadowMap in FPS Benchmarks.

Roblox should really work for one year on improving roblox’s graphics. Including an advanced graphics options for players and more customizability when it comes to lighting, and light’s behavior on materials.

1 Like

New voxel grid apparently is coming next year according to the roadmap, also Future lighting as the default and support for android! Hopefully more good stuff - for lighting - coming next year that isn’t on the roadmap.

1 Like

the difference between future and shadowmap ambient occlusion is that future ambient occlusion only occludes ambient light(DiffuseScale, SpecularScale, Ambient, OutdoorAmbient) and shadowmap just multiplies all lighting including the so this is basically double occluding as the sun already has a system for light occlusion(hint its in the name).

If you want a solution for sunlight leaking through surfaces you are actually after contact shadows(basically ambient occlusion but in a very specific direction).

1 Like

You get basically full AO if you set the ambient light to 255, 255, 255. If its at 0, 0, 0 ambient occlusion is less visible, but I believe yes AO is generally just weaker on future compared to ShadowMap or Voxel. Its best if Roblox would just allow developers to customize all of this, the “one glove fits all” narrative is seriously hurting a lot of artists and hinders creativity, we need control or artists cant make their art direction actually work!

3 Likes

Agreed. It feels like contact shadows are the more accurate feature request here.

https://dev.epicgames.com/documentation/en-us/unreal-engine/contact-shadows-in-unreal-engine

4 Likes

How did we go from Ambient Occlusion to Contact Shadows.

AO in ShadowMap falsely occludes things that should not be occluded. The actual reason your models look too bright in Future is because there’s no short-distance shadowing. They just happen to look better in ShadowMap because the mistaken AO kind of approximates it in this one case.

Look closely. The sunlight is falling on the front of the gun model, right? So why is the crevice on that side so dark? It’s in direct sunlight. We should instead be seeing shadows from the protrusions, not from the crevice. That’s what contact shadows solve for.

Contact shadows also more elegantly solve for many of the other AO use cases, like improving contrast on bright surfaces, without having to contort the lighting model to do non-physical things that are highly opinionated.

Roblox should not, and likely won’t ever, adopt an overly opinionated, stylised, or otherwise non-physically-based lighting model unilaterally. Opinions have to be held by the engine forever, and tend to become maintenance burdens that become obstacles to preserving artist intent into the future. More likely, we’ll get better lighting models instead, which have the benefit of being much easier to retrofit into existing artist’s content without blowing up the design.

The real issue is that Future lighting can’t accurately represent the lighting in a small neighbourhood around a pixel. That shouldn’t be solved by smearing AO on everything like it’s lip balm - even from the moment it was introduced by the Crysis team, it was a non-physical effect. The correct solution is to consider the actual lighting occurring in that neighbourhood, which Future is more correct at in general than ShadowMap.

4 Likes

I want shadows in places light can’t reach, AO is meant to be darker than regular shadows, contact shadows are not going to help if the shadow is the same darkness.


Spot the difference!!!

Can't tell?

left/top = shadowmap, right/bottom = future

1 Like

Yup. AO only shows in shadowed areas on Future, as is (more) physically correct. The remaining problem is just that Future doesn’t have enough shadows :slight_smile:

I feel like what would also greatly benefit developers is the ability to have AO textures, yes this would also have the same issue of “how do we efficiently store AO in a texture pack on surface appearances” just like the emission texture, but I believe having AO textures on PBR would also be great, but even better if we could just add a new post processing effect that lets you customise AO to your hearts desire. I really think we need more PFX effects.

2 Likes

This would also require that that object have regular Realtime ambient occlusion turned off or making it not include ambient occlusion from itself otherwise we would get double ambient occlusion.

A tad bit harder than just finding a unused channel in the texture pack.

EDIT: That or the ambient occlusion bakes would have to only include details not present in the meshes geometry.

2 Likes

Yeah, thats true, just having more post processing effects would be better I believe.

1 Like

Try that on meshparts now, don’t be shy. What do you think the screenshots in the post are.

Sure thing:





Comparison on a big model to show where shadowmap applies ambient occlusion to sunlight where it shouldn’t:


I used a random gun model from the toolbox.
EDIT: don’t mind the lighting I just did this in the file I had open at the time.

EDIT2:

Here it is on a smaller version of the same gun if you were about to complain about the gun being big:





These ones are smoothplastic instead of plastic as plastics texture is distracting at this size.
I think I forgot to make it white like in the screenshots with the oversized versions oops.

You can’t be serious, you scaled that up by 500x, Future doesn’t have ambient occlusion on small meshes such as guns (which are used as viewmodels to not get clipped through walls) but shadowmap does.