- Try to rotate light projection matrix
- Try to use different texture size beside square
- Try Face/back culling (example https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping)
- Try PCF (example https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping#:~:text=we%20had%20before.-,PCF,-The%20shadows%20right)
- Try using noise (example http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#poisson-sampling)
- Look at https://ogldev.org/www/tutorial23/tutorial23.html
- Use less detailed model for shadow map generating
- Try sampler2DShadow http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#pcf
- Use same vao for shadowmap and regular render (reduce vao count twice)
Resources: