next up previous index
Next: Extensions to non-diffuse environments Up: Progressive refinement Previous: Application of vertex-surface form

Probabilistic progressive refinement


In probabilistic form factor computation, rays were fired from surfaces to determine which other surfaces can absorb their radiosity. In progressive refinement, on the other hand, the radiosity is shot proportionally to the precomputed form factors. These approaches can be merged in a method which randomly shoots photons carrying a given portion of energy. As in progressive refinement, the unshot and total radiosities are initialized to the emission of the surfaces. At each step of the iteration a point is selected at random on the surface which has the highest unshot radiosity, a direction is generated according to the directional distribution of the radiation (cosine distribution), and a given portion, say 1/nth, of the unshot energy is delivered to that surface which the photon encounters first on its way.

The program of this algorithm is then:

for  j=1 to N do  tex2html_wrap_inline2456
       j = Index of the surface of maximum  tex2html_wrap_inline2400
       tex2html_wrap_inline2462  = a random point on surface j by uniform distribution
       tex2html_wrap_inline2466  = a random direction from  tex2html_wrap_inline2462  by cosine distribution
       if  tex2html_wrap_inline2470  hits surface i first then 
                tex2html_wrap_inline2360  +=  tex2html_wrap_inline2476 ;
                tex2html_wrap_inline1772  +=  tex2html_wrap_inline2476 ;
       tex2html_wrap_inline2400  -=  tex2html_wrap_inline2484 ;
       tex2html_wrap_inline2396 ;
while  error > threshold;

This is possibly the simplest algorithm for radiosity calculation. Since it does not rely on form factors, shading models other than diffuse reflection can also be incorporated.

Szirmay-Kalos Laszlo
Mon Oct 21 14:07:41 METDST 1996