1. A method, comprising: determining a light source configured to emit light using a computing device, wherein the light source comprises a center point; determining an occluding polygon using the computing device, wherein the occluding polygon is between the light source and a receiver surface, and wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon edges; determining a shadow of the occluding polygon on the receiver surface using the computing device by at least: for a particular occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex on the receiver surface based on a ray projected from the center point through the particular occluding-polygon vertex; determining an outline polygon based on the projection vertex; determining a projection circle around the projection vertex; determining a penumbra of the shadow of the occluding polygon based on one or more exterior tangents to the projection circle that are outside of the outline polygon; and determining an umbra of the shadow of the occluding polygon based on one or more interior tangents to the projection circle that are inside of the outline polygon; and providing at least part of the shadow of the occluding polygon for display using the computing device.