Distance Fields AO Shadow Proxies.


This is just an idea for the guys who work of DFAO tech. It would be lovely to have some sort of “Shadow Proxy” object type. What I’m referring to is a simple object, which affects Distance Fields Occlusion, but is not rendered. This can be used in cases, when normal DFAO distance is not enough to create believable sky occlusion (for example under a bridge).

See the images below for comparison. In the second one, I’ve duplicated one of those rocks, set it to be Invisible, but cast Hidden Shadow. The difference is quite noticeable, I think:



The problem with doing what I did here at the moment is that you cannot turn off dynamic sun shadows cast by those objects and have only DFAO being affected. Also, if there was a way to control amount of DFAO cast by the “proxy” object, it would give an enormous control for artists, allowing them literally "paint’ with shadows.

Since Distance Fields are already there, I think the cost of having these objects could be negligible.

Anyway, hope you guys will give this a thought :slight_smile:

Why would you want an object to cast a shadow from the sky (DFAO), but not the sun (Direct)?

Quite a lot of reasons, one of them being any material that uses a DistanceToNearestSurface node that requires Distance Field meshes, but that you dont want to render (a player with a distance field mesh via static mesh pushing grass around).

Couldn’t you just make a mesh and give it an invisible material? Simplest would probably be an additive material with black diffuse.

Not sure I’d ever use what OP describes in particular or any other way, but generalizing his request, having ability to composite distance field from any mesh into global distance field without actually rendering a mesh would not hurt.