A Computational Approach to Simulate Light Diffusion in Arbitrarily Shaped Objects

Tom Haber and Tom Mertens and Philippe Bekaert and Frank Van Reeth

Abstract

To faithfully display objects consisting of translucent materials such as milk, fruit, wax and marble, one needs to take into account subsurface scattering of light. Accurate renderings require expensive simulation of light transport. Alternatively, the widely-used fast dipole approximation cannot deal with internal visibility issues, and has limited applicability (only homogeneous materials). We present a novel algorithm to plausibly reproduce subsurface scattering based on the diffusion approximation. This yields a relatively simple partial differential equation, which we propose to solve numerically using the multigrid method. The main difficulty in this approach consists of accurately representing interactions near the object's surface, for which we employ the embedded boundary discretization. Also, our method allows us to refine the simulation hierarchically where needed in order to optimize performance and memory usage. The resulting approach is capable of rapidly and accurately computing subsurface scattering in polygonal meshes for both homogeneous and heterogeneous materials. The amount of time spent computing subsurface scattering in a complex object is generally a few minutes.

Download

[PDF] [BIB] [PPT]

Details

We solve the diffusion equation using finite differencing on a volumetric representation of the object. To avoid inaccuracies at the boundaries caused by so-called cut-cells (boundary cells that are split by the surface), we employ an emmbedded boundary discretisation. This discretisation accounts for (a linear approximation of) the boundary in these cells and allows us to naturally incoporate the boundary conditions into the system.

The first step of the algorithm builds an octree (from the trianglemesh) containing only the surface. We continue subdividing until the high-curvature regions are faithfully represented by the linear approximation. Next, the full-threaded tree (FTT) is constructed from the octree. The FTT is a representation of the entire volume. The construction is performed recursively. The space, not accounted for in the octree, is discretised and classified as inside or outside of the object. A cell is classified efficiently using the properties of an octree: every non-leaf node of an octree has at least one child, this child has potentially a neighbour in each of the principal directions. If the cell has a non-empty neighbour, the orientation of the surfaces within this neighbour tells us whether the cell is inside or outside. If the cell does not have such a neighbour, we first classify one of its neighbours and base our decision on its classification: an empty neighbour of cells outside the object, needs to be outside as well (same reasoning for inside).

The fractions required for the boundary cells are also computed at this point. We employ a variation of the sutherland-hodgeman algorithm for this purpose.

After this step, the FTT contains a coarse representation for the volume inside. This representation is now refined based on the incident lighting and material coefficients.

Finally, the system of linear equation resulting from a finite difference discretisation is solved rapidly with a multigrid solver.

Results