III.6 Acoustic radiosity and radiance transfer

The techniques presented in this chapter consist of two phases such that in the first phase they propagate the sound energy from the sound source to the surfaces, and in the second phase they gather the response at the listener from the surfaces. This in contrast to the image-source and ray-tracing techniques that are based on reflection paths, and sound is propagated from the source to the receiver without any intermediate storage at the surfaces. In the following, we present first two different variants of acoustic energy propagation. The energy gathering to the receiver, i.e. the second phase, is the same for both of these techniques and is presented after those.

III.6.1 Radiosity - first phase
The radiosity method is the complete opposite of the image-source technique. It is a two-phase technique that assumes ideal diffuse reflections, whereas the image-source model employs purely only ideal specular reflections.

With the following interactive illustration you can see how the sound energy is propagated to the surfaces in the radiosity technique.

- Start by making the 'Initial shoot' that sends sound energy from the source to all surfaces.
- You can continue sound propagation by making consecutive 'shoots'.
- Moving the 'Time' slider illustrates instantaneous sound energy at surface patches while at the starting point it shows total energy accumulation.
- You can alternate between showing 'All energy' and 'Unshot energy' that shows how much energy there is on each surface waiting to be propagated further.
- Changing the 'Patch size' changes the tessellation of the geometry and restarts the simulation.

Patch size: General absorption:
Visualize: All energy Unshot energy

The first phase of the radiosity technique is energy propagation than can be outlined as in the following. In that pseudo-code each surface in the geometry is assumed to be tessellated to patches of appropriate size. Smaller the patches are, more accurate the simulation will be but at the cost of increased computation time and memory requirements.

Algorithm: Acoustic energy propagation with the radiosity technique

The algorithm is based on iterative propagation of the sound energy. At each iteration a patch with most energy waiting to be propagated is searched, and that energy is propagated to all the other patches. This is continued until the total amount of remaining energy reaches the given termination level that represents the amount of energy that can be considered to be negligible. The decay of the energy comes from the reflection operation that implements the absorption due to material properties. Without any absorption the algorithm would be in an infinite loop as there would be no energy decay.

It is worth noting that in all the pseudo-code inserts in this section, the sound propagation delay is neglected. In a real implementation, such as is in the illustrations in this section, all the energy storages need to be able to handle time as well. This can be achieved most simply by changing the energy to be an array that can be addressed by time that is quantized into small enough time slots. In practice it is recommended to have the temporal resolution of the responses to be finer than what is the shortest propagation delay between patches in the geometry. By this means it is possible to avoid loops in which the sound arrives to a patch at the same time when it is emitted from another patch. Another option for storage would be to store all the events individually thus storing the temporal information more accurately, but that would would be viable only for very low reflection orders.

Algorithm: Shooting the energy from a patch to all the other patches

There are different ways to implement the energy propagation between surfaces. In the algorithm above it is assumed that there is a function formFactor that returns the fraction of energy that is propagated from one patch to another one. At this point it is sufficient to know that it depends on the mutual angle of the two patches and on their mutual distance from each other. The exact formula for the form factor is presented later in relation to the Room Acoustic Rendering Equation. Besides the analytic form to compute the form factor it can be obtained by ray-tracing such that a number of rays is emitted from the patch and all the patches that are hit by those rays register the energy based on the number of rays hitting the patch. Actually, the illustration above uses that approach.

It is possible to pre-compute the form factor values for each pair of surface patches. However, in very large geometric models this might became problematic as the number of required form factors grows quadratically with respect to the number of patches. For this reason, it is sometimes better to compute the form-factors on the fly whenever needed as storing all of those would take too much memory.

It is essential to note that in the basic radiosity technique there is no need for the algorithm to remember any previous history of the reflection path. The sound energy from all the possible incident angles is treated similarly as there is no angle-dependence in ideally diffuse reflections. This enables efficient memory usage as it is sufficient to store just one temporal response at each patch.