About shadows:
Projective shadows (shadowmaps) — it is possible to do many shadow-casters, but it is not enough shadow-receivers (eat FPS). There are no problems with animated objects. It is possible to smooth shadow (blurred).
Stencil shadows - can do many many shadow-receivers (even all meshes on level), but it is not enough shadow-casters, everyone caster demands many calculations and strains both CPU and GPU. Almost it is impossible to get information about vertices and triangles for animated objects. These shadows cannot be made soft (blurred).
Conclusion:
Good solution for projective shadows - Swift Shadow lib. There is no sense to do better than it.
Fastest solution for stencil shadows - AShadow lib, but the code is terrible and it is very complex to adapt for teamwork with other libraries, for a long time there is no support of the author :( I shall probably create stencil shadows lib in the future, in it there is a sense. But there is not enough time for this purpose.
Projective shadows (shadowmaps) — it is possible to do many shadow-casters, but it is not enough shadow-receivers (eat FPS). There are no problems with animated objects. It is possible to smooth shadow (blurred).
Stencil shadows - can do many many shadow-receivers (even all meshes on level), but it is not enough shadow-casters, everyone caster demands many calculations and strains both CPU and GPU. Almost it is impossible to get information about vertices and triangles for animated objects. These shadows cannot be made soft (blurred).
Conclusion:
Good solution for projective shadows - Swift Shadow lib. There is no sense to do better than it.
Fastest solution for stencil shadows - AShadow lib, but the code is terrible and it is very complex to adapt for teamwork with other libraries, for a long time there is no support of the author :( I shall probably create stencil shadows lib in the future, in it there is a sense. But there is not enough time for this purpose.