**Specular-Inclusive
Radiosity**

The way that light reflects off diffuse and specular objects is very different. The result of this, without going into the microscopic reasons, is that diffuse reflections are uniform regardless of the incident angle, while specular reflections are concentrated around an excident angle opposite the normal of the incident angle. Because of this a normal form factor can not be used for light distribution from specular reflections.

Using a normal form factor light from a light source falls off with
`d^2` where `d` is the distance from the light source. This is
appropriate for diffuse reflections, and non directional light sources because
it assumes that light emmits from the source with equal intensity in every
direction. For a specular reflection though this is not the case. Therefore
we have to change this equation so that it doesn't fall off with `d^2`.

And our form factor for specular reflections is:ff = ( | (n1 dot dir) * (n2 dot dir) | * A ) / ( pi * d^2 )where:n1is the normal of patch 1n2is the normal of patch 2diris the direction from patch 1 to patch 2Ais the area (patches 1 and 2 have similar areas)dis the distance between patches

sff = ( | n dot dir | * d1^2) / (d2^2)where:nis the normal of patch reciving the light from the reflectiondiris the direction from the reflecting patch to the reciving oned1is the distance between the two patchesd2is the total distance from the last diffuse reflection for the light, so if the light bounces off multiple specular objects this distance will be the sum of all of the distances between those patches.

This new form factor remains unitless, like the diffuse form factor, but
does not fall off with `d^2` for every specular surface it hits.
Instead it maintains the same falloff as the last diffuse surface that was
intersected. This is done through multiplying by the current distance, and
dividing by the new sum. The angle of the light excident from the specular
surface is also not important, so the second cosine term is dropped. And the
area is also no longer important because the area of all patches is assumed to
be the same (We should multiply by one patch area, and divide by the other,
but because they are the same they can be left out of the final equation).