Practical Global Illumination with Irradiance Caching