How can I make a dark area/volume of fake shadow?


This is the kind of effect I’m going for. The above was created with a projector but unfortunately projectors cause too many draw calls so I’m trying to find a more optimized approach. I would like to create a controllable volume or area of darkness similar to what a projector does or what a negative/black light would do. I have been searching online and on the asset store but the only solutions I’ve found were decals or flat planes positioned under the player. These are no good because I need the player (the red ball) to be able to hide within these shadowy areas and so a decal or plane on the ground just doesn’t cut it. These areas would not have to be affected by lights, they would be faked shadows which would give much more control than a shadow caster for example since it would not be effected by the light direction.

Any suggestions how could I do this in Unity Free?

In Unity Free, projectors are pretty much your only option. The way this is usually done is with volume rendering or real-time shadows. Since Unity Free does not have access to either of these, the best thing you can do is to use a projector.

If you don’t mind restricting your project to DX11, though, you may be able to write your own projector code using Compute Shaders, which might speed up the drawing.