= trace(ray) trace(ray) for each object in scene if ray intersects an object if the object is nearest in the scene return color(ray, object) color(ray, object) if shadow ray intersects light L = BRDF * (normal,ray) * (phi/r^2) if material is specular L+=trace(new ray) return L