A Computational Approach to Simulate Light Diffusion in Arbitrarily Shaped Objects
Abstract
Download
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.