Abstract

Figure 1: Time-lapse screen capture showing ambient occlusion values calculated in real-time. We present a single-pass hardware accelerated method to compute ambient occlusion values in real-time on dynamic character skins. Ambient occlusion at a point is the cosine weighted integral of the visibility function. Assuming the scene is enclosed in a spherical area source light, ambient occlusion corresponds to the amount of light that will reach each point. Unfortunately, computing ambient occlusion is time-consuming. It requires sampling the hemisphere around each point to determine visibility. Our method takes a data driven approach to approximating ambient occlusion in real-time. It builds a set of linear functions over several subsets of poses, then produces the ambient occlusion using a blend of these functions. Because we are using linear functions our output is smooth, fast to evaluate, and easy to implement in a vertex or fragment shader. Several researchers have examined precomputation of illumination. [Sloan et al., 2005] used spherical harmonics to compress low-frequency transfer functions at points on a static mesh. This method handles a wide range of low-frequency phenomena. However, it is limited to local changes in geometry, and does not handle the type of deformation seen in character animation. [James and Twigg, 2005] precompute illumination data at several points in state space, then blend this data as they deform the mesh. Our method is similar, but we provide a means to minimize error variance within local regions of state space. Recently, [Bunnell, 2005] proposed a multi-pass method for calculating ambient occlusion in real-time. This method makes approximations to the shape of elements, and error is dependent on the number of passes. Ambient occlusion is a function of vertex positions, which in turn are functions of the character’s joint angles. Therefore, ambient occlusion for character skins is also a function of joint angles. It is desirable to represent this function linearly, because linear functions can be computed easily in hardware. Unfortunately, ambient occlusion can change nonlinearly over a wide range of poses. The key observation of our method is that ambient occlusion changes smoothly for small changes in joint angles. Rather than building one large linear function, our method builds several linear functions, each local to a dierent region of pose space. These

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call