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.  
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