1. A method for rendering on a display a soft shadow with varying penumbra width in a 3D scene comprising: generating a penumbra map using a z-buffer; generating an occluder map using the z-buffer; projecting the penumbra map and the occluder map into a 3D scene to render at least one shadow having a penumbra region and an umbra region on a display.