Distance Field Indirect Shadows prototype

This is really cool, especially that you used the object distance fields instead of the global distance field, since the global distance field is very low res.

I’m thinking the ray marching of mesh distance fields should be integrated with the capsule shadow tiled culling implementation rather than done separately with its own upsample. Conceptually a mesh distance field is just a different occluder primitive than a capsule, it sill has a bounds on its influence so it can be culled vs tile bounds in the same way.

The main downside of using mesh distance fields for indirect shadows like this is that you eat a large memory cost from enabling ‘Generate Mesh Distance Fields’ for the whole project just to get a few movable objects to cast. I’d probably add an opt-in on the UStaticMesh, much like you have to setup a USkeletalMesh for capsule shadows.

Thanks for the inspiration!