Soft shadows may include areas that are less clear (more blurry) than other regions. For instance, an area of shadow that is closer to the shadow
caster may be clearer than a region that is farther from the shadow
caster. When generating a soft shadow, the total amount of light reaching each point on the shadow receiving surface is calculated according to a spatially-varying
convolution kernel of the occluder's transparency information.
Ray-tracing, traditionally used to determine a spatially varying
convolution, can be very CPU intensive. Instead of using
ray-tracing, data structures, such as MIP-maps and summed-area tables, or separable linear filters may be used to compute the spatially-varying
convolution. For example, a two-dimensional convolution may be computed as two spatially-varying, separable, linear convolution filters—one computing a horizontal component and the other a vertical component of the final 2D convolution.