Many planar slices of the surface are taken :
A Mesh | A plane slicing the mesh | The part of the mesh in one 2D slice |
In each slice, the planar `visibility cone' from each surface point is computed with 2D visibility techniques. The visibility cone from a point is the set of directions, in the plane, in which the outside environment is visible. This is shown in yellow below.
Given that cone at a point, the direct primary illumination of the point can easily be computed for any distribution of illumination from the environment (but only from light travelling in the plane!).
2D visibility cones from various points |
For a more accurate estimate of the visibility cones, and to remove the restriction of light travelling in the plane, several slices are taken at different orientations and sets of 2D cones are combined to form 3D cones :
2D cones at various orientations | 3D cone wrapped around 2D cones | 3D cone by itself |
Given the 3D visibility cones at each point on the cloth, the shading of each point is quickly calculated, for any distribution of illumination, simply by integrating the incoming illumination over the directions that fall within the visibility cone. For uniform diffuse sources, and for point sources, this is particularly fast.
Cloth shaded with a uniform diffuse hemispheric source |