Another algorithm renders the scene into a texture from the perspective of the light source and then projects the resulting eponymous map into camera-space.  
One algorithm implements these by extruding polygons from the silhouette edges of each object in the scene and then uses the stencil buffer.  Another algorithm renders the scene into a texture from the perspective of the light source and then projects the resulting eponymous map into camera-space.  In raytracing, these are implemented essentially for free, because you can just cast a ray from an object to a light source and see if any object is in the way.  The Unreal 3 game engine will allow objects to cast these shapes on themselves.  FTP, name this type of region which consists of a penumbra and an umbra.
One algorithm implements these by extruding polygons from the silhouette edges of each object in the scene and then uses the stencil buffer.  
shadows