What is the best shadow technique to use for large scale environment? I implement shadow maps but… they just don’t do the job well any pointers?


Search for perspective shadow maps.

As a wise person said:

“Friends don’t let friends implement perspective shadow maps”

You’re much better of using cascaded shadow maps a.k.a. parallell split shadow maps.


stable and scalable implementation of any perspective approach requires lots on not quite obvious work, but the result is quite impressive. The main advantage is that you are still using single shadow access per-fragment and you don’t have to handle border situations when softening shadows.
We’re totally satisfied using LiSPSM with some trapezoidal tricks.
So many people - so many opinions.

And consider combining these popular yet distinct approaches. Take for example VSM, TSM and PSSM… attorneys at law. VSM for really nice/fast soft shadows and say TSM/PSSM for maximal area projections.

I’m not aware of any single approach that’s perfect… they all have some notable shortcomings.

could someone give me google friendly names for these: LiSPSM, VSM, and TSM. I figured out PSSM the others are a mystery to me.

Light Space Perspective Shadow Maps.
Variance Shadow Maps
Trapezoidal Shadow Maps

I would suggest cascaded shadow maps. It works well and is fairly easy to implement. The biggest disadvantage of all these warping schemes is that resolution is not constant. Turn the camera and there’s noticable pixel movements along the shadow edges. It can look pretty nasty. With cascaded shadow maps you can solve the problem by aligning each shadow maps movement on the subpixel level so if you turn around and the shadow frustum changes you can adjust it so that the same area on the ground always maps to a single (but possibly different) pixel in the shadow map. This removes all the ants from the shadow edges.