7.8. Changing environment and image refinement   

In this section, we will look at the technique which deals with the scene changes and viewpoint movements. Such a technique should be fast enough to interact with user inputs and, immediately provides the new global illumination in real-time. Furthermore, user should be able to add ,remove, change or move any object with no restrictions on their geometry or their surface characteristic or the path of their motion.

7.8.1. Definition of dynamic environment and walkthroughs   

Dynamic environments are the environments where the geometry or properties of the objects may be changed. Walkthroughs involve moving the viewing position with respect to the scene.[Kwok,92] In the dynamic environment, if a geometry change occured such as objects are added, removed, moved or change of their shapes, their radiosity solutions needed to be recomputed. In this event, as form factor values are required to be recomputed, it is the most computationally expensive part of the radiosity simulation. On the other hand, if the surface property changes such as reflectivity or self emittance of a object changed, it is only needed to compute and propagate radiosity correction for each patch on that object. No energy propagation of other patches are required. Thus latter criteria is more simpler and less expensive.

7.8.2. Geometry Changes   

When an object is added to a given scene, the energy that has been propagated through the environment must now be redistributed to account for the new object. In this new environment, some objects will have more energy, and some will have less energy.

Obviously, the patches on the newly added object, which are now visible from illumination patches will have their share of energy from that patch. It is done by shooting out the positive energy from illuminated patches towards the visible patches on the new object. On the other hand, patches in the shadow by new object will have less energy then the original solution. If a patch is partially occluded from an illumination patch by the new object, then some of the energy previously received should be cancelled. It is obtained by shooting the negative energy.


 
Geometry Changes
Fig. 7.48 : Geometry Changes
When an object is removed, positive energy is shot from each of the illumination patches in the scene towards the patches that are no longer occluded from the shooting patch. Value zero is set for the intensities of the patches on the removed object since it is no longer in the environment. Energy that was contributed by patches on the removed object is erased by shooting the negative energy.

When an object is moved or changed its shape, it is doned by removing the object from the scene, make the appropiate changes and add it back to the scene [George,90].

To track the geometry changes, a queue is used with two basic operations: addition and deletion of objects. The queue can provide the history of changes in the scene. The multiple changes can also done by using queue.

7.8.3. Radiosity redistribution   

The algorithm described below is based on the approach presented by George [George,90]. George suggested that the radiosity value can be redistributed by either shooting or gathering. With gathering, redistributed energy is computed one patch at time, wheras with shooting, each patch can shoot all of its redistribution energy, partially solving the redistribution energy of many patches with each shot. If the patches with highest redistribution energy is shot first then, many redistributed terms can be approximated to their final value after a few shots. Thus, shooting is prefered for computing redistribution energy.

Only the energy that propagated through the environment before is redistributed. If we combine this with visibility tests (which determines which patches might be occluded by the new object) , we do not need to consider a large number of patches whose form factors have not changed. To evalute the redistributed energy of a patch, the form factor must be computed from that patch to patches on the new object as well as patches occluded by the new object.

7.8.3.1. Reordering patches   

As a user constantly supplies a change to the enviroment, the technique should immediately interact with user's input. Due to the time limitation, only a few patches are updated before the display is completed. To overcome this problem, the patches with the most total unshot energy towards the dynamic object is considered first. George[George,90] uses a heuristic method to predict which patches will shoot the most redistribution energy to the objects. Heuristic method uses a quick estimate of relative amount of energy that each patch would shoot towards the new object. However, the accuracy of estimated value depends on the following rules:

7.8.3.2. Handling redistribution and propagation energy shots   

When an object is added, there will be some redistributed energy shots and propagation energy shots (case of new object is an emitter) in the environment. The process may be interrupted by another user's input before the initial radiosity solution is converged. George [George,90] stated that after several redistribution shots, additional unshot radiosity will be accumulated at patches on dynamic object, and unshot negative radiosity will be accumulated at shadow patches.

The problem is how do we handle this unshot redistributin energy and propagating energy? To solve this, George suggested the following two stratgies .

First strategy
First strategy deals with redistribution shots first then interleaves the propagation shots and remaining distribution shots.
When an object is added to the scene, patches are chosen as the most important patch first to redistribute the energy. Redistribution continues until the amount of energy redistributed during each iteration falls between some energy threshold. When the threshold is reached, any remaining redistributed shots are interleaved with propagation shots.
The general idea is based on the observation that the user is normally focused on the changing parts of the environment. Thus, the greatest changes of the display, dynamic objects and their shadow regions are dealt with first. If a new object is an emitter then the user normally focused on the effect that its light source has on the environment. In this case, energy from the light source is propagated before any patch redistributes its energy.

Second strategy
In this strategy, propagation and redistribution energy shots are interleaved completely. Before each shot, the patches with the most unshot propagation energy are compared with the patch with the most energy to redistribute, and the patch with greater energy is chosen to redistribute. The following two visualisation effects are achieved in this stratgey: