The present traditional penumbra map method can only render the outer part of the penumbra, which breaks down when the umbra region significantly decreases because of the large light sources and the large distance between the occluder and the shadowed objects. This happens for very large area light source or as the occluder moves away from the objects it shadows. This paper proposes a real-time soft shadow rendering method based on bidirectional penumbra map generated in image space. It first extracts the edge of the shadow in the shadow map without rendering the whole scenes again. Then it extends the edges both inside and outside to obtain the inner and outer penumbra region, and calculate the change of lighting intensity along the two directions to generate the bidirectional penumbra map. Lastly, the final image is rendered with this penumbra map and the shadow map. This method solves the distortion problem of the traditional penumbra map method when the umbra region significantly decreases. It has only two rendering passes and approximates the soft shadow in image space, thus can be design to run entirely on GPU. The result of our experiments shows the efficiency of our approach.