Rendering translucent materials using photon diffusion

  • Authors:
  • Craig Donner;Henrik Wann Jensen

  • Affiliations:
  • University of California, San Diego;University of California, San Diego

  • Venue:
  • EGSR'07 Proceedings of the 18th Eurographics conference on Rendering Techniques
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new algorithm for rendering translucent materials that combines photon tracing with diffusion. This combination makes it possible to efficiently render highly scattering translucent materials while accounting for internal blockers, complex geometry, translucent inter-scattering, and transmission and refraction of light at the boundary causing internal caustics. These effects cannot be accounted for with previous rendering approaches using the dipole or multipole diffusion approximations that only sample the incident illumination at the surface of the material. Instead of sampling lighting at the surface we trace photons into the material and store them volumetrically at their first scattering interaction with the material. We hierarchically integrate the diffusion of light from the photons to compute the radiant emittance at points on the surface of the material. For increased accuracy we use the incidence plane of the photon and the viewpoint on the surface to blend between three analytic diffusion approximations that best describe the geometric configuration between the photon and the shading point. For this purpose we introduce a new quadpole diffusion approximation that models diffusion at right angled edges, and an attenuation kernel to more accurately model multiple scattering near a light source. The photon diffusion approach is as efficient as previous Monte Carlo sampling approaches based on the dipole or multipole diffusion approximations, and our results demonstrate that it is more accurate and capable of capturing several illumination effects previously ignored when simulating the diffusion of light in translucent materials.