This document discusses two methods for adding shadows to objects in 3D scenes - shadows as textures and creating shadows with a shadow buffer. The shadows as textures method works for point light sources casting shadows on flat surfaces by "painting" the shadows as textures, but requires computing the shape of each shadow. The shadow buffer method performs hidden surface removal by marking in a buffer any points hidden from the light source, then rendering the scene in two passes - first loading the shadow buffer and then rendering using the buffer values to determine shading.