Dynamic Ambient Occlusion and Indirect Lighting

Michael Bunnell · 2005

In this chapter we describe a new technique for computing diffuse light transfer and show how it can be used to compute global illumination for animated scenes. Our technique is efficient enough when implemented on a fast GPU to calculate ambient occlusion and indirect lighting data on the fly for each rendered frame. It does not have the limitations of precomputed radiance transfer (PRT) or precomputed ambient oc-clusion techniques, which are limited to rigid objects that do not move relative to one another (Sloan 2002). Figure 14-1 illustrates how ambient occlusion and indirect light-ing enhance environment lighting. Our technique works by treating polygon meshes as a set of surface elements that can emit, transmit, or reflect light and that can shadow each other. This method is so effi-cient because it works without calculating the visibility of one element to another. In-stead, it uses a much simpler and faster technique based on approximate shadowing to account for occluding (blocking) geometry. 14.1 Surface Elements The first step in our algorithm is to convert the polygonal data to surface elements to make it easy to calculate how much one part of a surface shadows or illuminates an-other. Figure 14-2 illustrates the basic concept. We define a surface element as an ori-ented disk with a position, normal, and area. An element has a front face and a back 214_gems2_ch14_new.qxp 2/2/2005 4:10 PM Page 223 224 face. Light is emitted and reflected from the front-facing side. Light is transmitted and shadows are cast from the back. We create one element per vertex of the mesh. Assum-ing that the vertices are defined with a position and normal already, we just need to calculate the area of each element. We calculate the area at a vertex as the sum of one-third of the area of the triangles that share the vertex (or one-fourth of the area for quads). Heron’s formula for the area of a triangle with sides of length a, b, and c is:

Read the paper · More papers on PaperTik