7.5. Concerning Form Factor   

After a given environment is broken down into a set of polygons, energy exchange between all pairs of elements are evaluated. This evaluation is called Form Factor calculation.

There are a number of problems associated with form factor in the radiosity method. These are:

7.5.1. Form Factor definition   

The definition of form factor is : an expression of the radiative exchange between two patches or the fraction of energy leaving one patch that arrive at other [Goral,84][Watt,92]. Form factor only depends upon geometry of patches such as size, orientation and distances. Thus, once the form factors have been calculated for a given environment, they remain unchanged providing the geometry does not change. Patch reflectances and emissivities can be changed without requiring the recomputing of the form factor values [Hall,89].

Consider a form factor between two infinitesimal surfaces with differential areas dAi and dAj.


 
Form Factor
Fig. 7.24 : Form Factor
As from above diagram, dw is the solid angle subtended by dAj as seen from dAi. Its value is:
 

rad_equation9.ps
As a diffuse surface, the radiant energy coming out from dAi in any direction is given as:
 

rad_equation10.ps
Then again, total energy leaving the surface, denoted by P, is derived from dP as :
 

rad_equation11.ps
Merging the above equations , the radiant energy leaving differential area dAi and directly incident onto differential area dAj is
 

rad_equation12.ps
Note that the form factor represents the fraction of total energy leaving dAi, and directly incident on dAj. Therefore
 

rad_equation13.ps
The next step is to compute the form factor from the differential area dAi to the finite area Aj. It is obtained by integrating above equation over Aj
 

rad_equation14.ps
Hence, the patch to patch form factor, FAiAj is
 

rad_equation15.ps
This is obtained by integrating over Ai and taking the average area :
 

rad_equation16.ps
The following principles can help to reduce the calculation of form factor values and hence decreases the computational expense.

7.5.2. Hemicube and delta form factor   

In 1985, Cohen introduced a comprehensive method by using a hemicube which effectively calculates the form factor values and solves the problem of the intervening patches in a complex environment.

As we have seen, the patch_to_patch form factor is:
 

rad_equation16.ps
If the distance between two patches, r, is large compared to their sizes, then it can be seen that the value of the inner integral does not change much over the range of the outer integral providing that they are not partially occluded from one another. In this case, the effect of the outer integral is approximately multiplication by one. We then have:
 

rad_equation19.ps
Thus the area_to_area form factor is approximately equal to the differential area to finite area form factor.

In his method, Cohen uses the Nusselt analogue to determine visibility in complex environment. According to Nusselt's analogue, for a finite area, the form factor of the patch is equivalent to the fraction of the circle at the base of the hemisphere. The circle is formed by taking the projection of the patch onto the hemisphere surface and projecting it down onto the base of the hemisphere. Nusselt's analogue also said that any patch that has the same projection area on the hemisphere surface has the same form factor value. The diagrams below shows the Nusselt analogue clearly.


 
Nusselt analogue
Fig. 7.25 : Nusselt analogue
Cohen uses a hemicube instead of a hemisphere for the convenience of geometry specifications. An imaginary unit size hemicube is positioned at the center of the front face of each patch such that the base of the hemicube is perpendicular to the normal of the patch. The faces of the hemicube are then subdivided into small elements called pixels (NOT to be confused with the pixels on the screen).

 
A different type of pixel
Fig. 7.26 : A different type of pixel
Each pixel on the hemicube is considered as a small patch. By using Nusselt's analogue, each patch j in the environment is projected on the hemicube of patch i. Delta form factors are then precomputed for each pixel of the hemicube and stored in a look up table. Delta form factors are the form factors computed from the center of the base of the hemicube to a pixel on the hemicube. The form factor from a patch i to another patch j is the sum of the delta form factors covered when patch j is projected onto the hemicube surface of patch i.

 
Form Factor Evaluation
Fig. 7.27 : Form Factor Evaluation
By using the hemicube method, the occluding or intervening patch problem is easily solved. As mentioned above, if any two patches have the same projected area on the hemicube surface, then they have equal form factor values. When patches are projected onto the hemicube, if one pixel contains the projection from two patches, then the distance between pixel and each patch is determined and we select the nearer patch. Thus, for each pixel on the hemicube , there is a patch label buffer which contains the patch number that is seen by that particular pixel. It is very similar to Z-buffer algorithm concept.

 
Hemicube Justification
Fig. 7.28 : Hemicube Justification
Therefore, the form factor of patch i and j becomes:
 

rad_equation20.ps
Whereas q is a set of pixels onto which patch Aj is projected and Fq is the delta form factor associated with pixel q on hemicube of patch i.

The delta form factor Fq is given as:
 

rad_equation21.ps
The diagram below will help you understand the above equations.

 
Hemicube pixels
Fig. 7.29 : Hemicube pixels
There is an algorithm for hemicube and delta form factor.

7.5.3. Problems with hemicube or hemisphere   

The general idea of hemicube and hemisphere is the same, the difference is only the way they approach the intervening patch problem. There are some problems involved in these methods which are mainly due to the use of discrete uniform sampling through the pixels of the hemicube. The problems are as follows:

7.5.4. Hybridized form factor   

This method was introduced by Baum [Baum,89] in 1989. This is one step beyond the normal hemicube algorithm while retaining the major benefit of hemicube algorithm - computational efficiency. As mentioned above, the hemicube form factor method is inappropiate when patches are too close relative to their sizes and the environment involves light sources. In Baum's method, form factors are evaluated analytically and use a hemicube to determine the visibility only.

The form factor from patch i to patch j is given as (detail explained in hemi cube section)
 

rad_equation22.ps
Baum's method evalutes the above inner integral analytically and the outer integral numerically. In his method, Stoke's theorem is applied to calculate the form factor from the receiving elements to each pixels on hemicube onto which elements are projected.


The inner integral, a differential area to finite area form factor is then calculated as :
 

rad_equation23.ps
    
Baum's Method
Fig. 7.32 : Baum's Method
The above formula is later used to determine an element to patch form factor.

The detailed description of Baum's method is as follows:

Like the hemicube method, each element in a patch is projected onto the hemicube pixels. For each pixel onto which an element projects, the form factor is calculated by using equation 1. This is weighted by the area of pixel projected onto the element (divided by the total visible area). The outer integral , patch to patch form factor, is then evaluated by summing the above element form factors. That is done by normal hemicube algorithm.


 
Sample points
Fig. 7.33 : Sample points
Element to patch form factor, Fej, is weighted by the average of the samples. Because of the magnitude of Fej does not depend directly on the number of pixels projected on the hemicube, it solves the aliasing problem due to an element projecting onto a small number of hemicube pixels. To solve the intervening patches problem, Baum suggested that each shooting patch should be subdivided until the subdivision components are either fully visible or fully hidden from each element in the environment.


To determine whether subdivision is need or not, the following equation is carried out after finding all the element to patch form factors for patch i.
 

rad_equation24.ps
where Total_F is the approximation of the sum of Fie for all elements e in the environment.

If the sum is greater than unity by a significiant amount then visibility errors exist for more than one surface in the scene. In this case, the shooting patch needs to be subdivided ,and the procedure recursively applied to each subpatch.

7.5.5. Global cube   

Immel [Immel,86] presents the determination of radiance distribution using a global cube. In the hemicube method, each hemicube is constructed on every patch and visibility is determined by looking through the each pixel of the hemicube. The hemicube is also oriented so that the patch normal always coincides with the center of the hemicube's top face. Since the orientations of the cubes are determined by patch's local coordinate system, there is no directional relationship between the hemicubes. However, the traditional radiosity method assumes that the intensity is constant over all the directions , hence, the directional relationship is not that important.

When the intensities vary with the directions, it is important to equate the incoming directions of receving patch with the reciprocal outgoing directions from the sending patches. In that event, instead of reorienting a hemicube, Immel suggested that an imaginary full cube is constructed along the global axes instead of reorienting a hemicube.


 
Global Cube
Fig. 7.34 : Global Cube
Each face of the global cube is stored as a vector of the visible patch indenticfication numbers. For example, the faces of the cube are oriented as diagram a and the the vector is ordered as diagram b, then the reciprocal global cube locations may be easily calculated. The benefit of this is if patch i sees patch j through the cell oriented in the X,Y,Z direction, then reciprocal cell from patch j is simply in the -X,-Y,-Z direction.

    
Immel's Method
Fig. 7.35 : Immel's Method
During the rendering process, after specifying an eye position and view direction , the intensities coming to the eye are determined from the global cube directional intensities. Those intensities are the intensities at the grid vertices in the scene which are seen from that direction. The grid vertices are obtained by bilinearly interpolating between the nearest vertex cube directional intensities. Pixel intensities are then bilinearly interpolated from the vertex intensities.

7.5.6. Source to vertex form factor   

Source to vertex form factor is presented by Wallace[Wallace,89] to use in progressive refinement radiosity solution. Previously, the hemicube method was used. Unfortunately, it is not appropiate for progressive refinement due to its aliasing problems. Hemicube aliasing occurs when there are an inadequate number of pixels on the hemicube and the number of hemicubes that are used for source patches. These problems are eliminated in this new method.

In previous methods, form factors are determined by viewing the scene from the source and finding out which surfaces are visible. These method neglected the fact that the renderer will be using the patch vertex intensities for the final shading. Vertex intensities are determined by interpolating the intensities of neighbouring pixels , hence, inaccuracy may be result. In this new method, form factors are evaluated from source to receiver vertices by shooting rays from each vertex to sample points on the source. In that way, it is guaranteed that projected rays coincide with the polygon vertices.

To evalute the source to vertex form factor, the source (which currently possess the greatest amount of energy) is subdivided into delta areas. The form factor from each delta area to vertex is then calculated. Occlusion is determined by shooting a single ray from receiving vertex to the center of the delta area on the source. During the progressive refinement, at each stage form factors are computed from every vertex to the current source.

Of course, the accuracy of form factor depends on the number of rays shot. Those rays can be increased by simply increasing the number of sample points on the source. Those points can be varied from vertex to vertex as necessary since form factors from source to vertex are computed independently of other vertices.

To get an accurate form factor, the delta area on the source is recursively subdivided for each receiver vertex until the form factor from vertex to delta area falls below a user specified criterion. This method also eliminates aliasing by jittering the location of the sample points on the source.


 
Progressive refinement
Fig. 7.36 : Progressive refinement
To evalute the source to vertex form factor, we will start with the form factor for differential area dAv3s to a differential dAs which was used in hemicube pixel contribution:
 

rad_equation25.ps
Numerically, FdAvAs is the sum of form factors computed for small regions of area As.
 

rad_equation26.ps
An analytical solution for above equation is determined by Wallace. For simplicity, delta area is assumed as a disk which is parallel to the differential area dAv.

The equation will become,
 

rad_equation27.ps
If the sample points are distributed uniformly on the source and source is divided into n delta areas then total form factor is given as :
 

rad_equation28.ps
    
Analytic solution
Fig. 7.37 : Analytic solution
But we know that the energy leaving the source is

BvAv = PvBsAsFsv

The radiosity value at vertex dAv due to the illumination by the source As is
 

rad_equation29.ps
This is the value required for every vertex at each stage in progressive refinement method.