Test project. Implemented shadow calculation using the old classic shadow depth mapping technique. The advantage of this technique is that shadows can be generated for every objects in the scene. That is, all objects can cast a shadow and receive a shadow on themselves from other objects. In this particular case, multisampling with PCF and 3x3 kernel per pixel is used to simulate soft shadows.
Test track download - https://disk.yandex.ru/d/pp5g5yn-3PUojF