LTC Shadow
In Kanikama, one can use the LTC (Linearly Transformed Cosine)[1] for up to 3 monitors for specular lighting.
Visibility
The lighting with shadow is given by the following integral:
that is equal to
The first multiplication factor is nothing but the lighting without shadowing, and analytically caluculated by LTC. The second multiplication factor can be seen as a "visibility" factor. In [2], this visibility factor is computed by a stochastic method, that seems difficult to import to the VRChat setting.
In Kanikama, we omit BRDFs and use instead the following as the visibility factor:
This is the visibility factor in the diffuse setting. We can compute it by taking the ratio of two lightmaps, with shadow and without shadow.
Without shadow:

With shadow.

The ratio of two lightmaps.

Note that this visibility factor is in the diffuse setting and not equal to the visibility factor above in the specular setting. But it is better to have them than not to have it in many situations.
Kanikama supports up to 3 monitors and store their visibility factors into the RGB channels of visibility maps:

References
- [1]: Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt. Real-Time Polygonal-Light Shading with Linearly Transformed Cosines. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2016) 35(4), 2016. Project page: https://eheitzresearch.wordpress.com/415-2/
- [2]: Eric Heitz, Stephen Hill and Morgan McGuire. "Combining Analytic Direct Illumination and Stochastic Shadows." In: Proceedings of the ACM SIGGRAPH symposium on interactive 3D graphics and games. 2018. p. 1-11. Project page: https://eheitzresearch.wordpress.com/705-2/