Bidirectional Geometry using Shadow Mapping