The basic ideas presented are classifying objects from the light's viewpoint, and caching shadowing objects. The classification scheme uses a modified z-buffer to create lists of objects in sorted order for each “pixel” the light sees and determining depths beyond which no light passes. The other technique presented is caching the object that was last intersected by a shadow ray and immediately testing this object for the next shadow ray for the same light at the same location in the ray tree. Shadow caching is simple and applicable to almost any ray tracer. Dieter Bayer implemented the light buffer for POV-Ray.