Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Real-Time Soft Global Illumination

We exploit precomputation and low-frequency numerical methods to render soft effects such as shadows from large light sources, subsurface scattering, and participating media in real time.


Traditional graphics renders “hard” shadows from a point light source like a candle, but neglects “soft” effects including shadows from a large area light source like a cloudy sky or a picture window. These effects add realism and provide cues that enhance our perception of shape. Until now, capturing soft effects has involved sampling rays originating from every surface point in all directions towards the light sources to determine whether intervening objects block or reflect the light. This is tremendously expensive. Can we exploit their smoothness to make these effects easier to compute? Our current work factors rendering into a pre-processing and a run-time phase, called precomputed radiance transfer (PRT). The spherical harmonic basis is used to capture how an object shadows and reflects low-frequency lighting onto itself. Small vectors (e.g. 16D) capture soft effects well and are handled efficiently on GPUs. Though the original PRT work was restricted to static geometry, we have recently been extending it to dynamic geometry too.

Precomputed Radiance Transfer (PRT)

Precomputed radiance transfer (PRT) captures soft shadows and other global illumination effects from environmental lighting that are critical for realism. The lighting and the object’s response to it, called its self-transfer, are both represented using spherical harmonics. Without shadows, the image on the left glows unnaturally making it harder to recognize the face (in this case, Max Planck). See [prt][shbrdf][cpca].

PRT for Textural Details

PRT for textural details captures precomputed shading effects from fine-scale features like bumps or wrinkles that respond in real-time to changes in lighting. We have also explored techniques for mapping such precomputed details onto deformable geometry as well as static models like this bunny. See [biscale][ldprt].

Soft Shadows on Moving Articulated Characters

Soft shadows on moving characters can be computed in real-time by approximating each character as a small set of animated spheres and accumulating each blocker sphere’s effect at every receiver point in every frame. We make this computation practical using a technique called spherical harmonic exponentiation, which accumulates blocker visibility in a low-frequency log space to replace expensive products of spherical harmonic vectors by simple additions. See [shexp][imacc].

Real-Time Soft Shadows on Dynamic Height Fields

Soft shadows can also be generated on dynamic height fields using simple multi-resolution processing on the height map, performed in real-time on the GPU.  See [hfvisib].

Real-Time Inhomogeneous Scattering

Shadowing and scatering effects from inhomogeneous smoke and steam can be generated in real-time on the GPU, by approximating the participating medium as a sum of Gaussians. See [fogshop].