ABSTRACT

This chapter presents an easily implemented technique for real-time, one-bounce indirect illumination with support for indirect shadows. Determining if dynamic scene elements occlude some indirect light and thus cast indirect shadows is a hard problem to solve. It amounts to being able to answer many point-to-point or region-to-region visibility queries in real time. The method described in this chapter separates the computation of the full one-bounce indirect illumination solution into three phases. The first phase is based on reflective shadow maps (RSM) [Dachsbacher and Stamminger 05] and is fully Direct3D 9 compliant. It generates the one-bounce indirect lighting from a kernel of RSM texels without considering blockers of indirect light. The second phase requires Direct3D 11capable hardware and dynamically creates a three-dimensional grid that contains lists of triangles of the geometry that should act as blockers of indirect light. The third phase traverses the 3D grid built in phase 2, tracing rays to calculate an approximation of the indirect light from RSM texels that are blocked by geometry. Finally, the result of the third phase is subtracted from the result of the first phase to produce the full indirect illumination approximation.