home GIGA áreas de interés
investigación innovación desarrollo
docencia publicaciones imágenes

*Introduction.
    -What is ALEPH?.
    -Problem Setting.
    -Facts and Details.
    -Programming.

*Specifications.
    -The libaleph library.
    -The libru library.
    -Auxiliary Script.
    -Utility Programs.
    -Shaders and Textures.
    -Distributed Rendering.
    -Future Work.

*Gallery.
    -First Stage.
    -Second Stage.
    -Third Stage.
    -Fourth Stage.



Programming
 

The Methods We Used

Having gone through all the physical and mathematical facts, we decided to use integration over the solid angle, which seemed to be the best solution, as it reduces computation time in the case of ray tracing.

Parametric definition of the domain of light sources is quite a complicated task, as the set of primitives that a light source can be made up of can vary considerably. This was another reasons why we chose to integrate over the solid angle. In addition to this, it is also difficult to evaluate the solid angle covered by a primitive, as certain approximations have been made.

As method for defining the geometry of light sources we use RenderMan. Each definition in RenderMan will call standard RenderMan primitives.

Integration of illumination

The integratiion of illumination affords some previous steps. In order to integrate over the solid angle the following elements have to be defined:

The integration domain

It is necessary to define the solid angle that is covered by each light source. This angle depends on the orientation of the light source as well as its position towards the illuminated point. In order to detach the solid angle from the illuminated point which simplifies calculation, we define a circle that comprises the whole set of primitives for the specific type of light. The center and the radius of the circle determine a direction and an angle which define the cone of the direction of light which is to be integrated.

Calculation method:

A series of N uniformly distributed samples is generated over the cone of integration. A uniform distribution allows the evaluation of the integration as follows:

ecuacion

Each sample (ray) will intersect the surface of the light. As the cone is more or less in line with the light, there are rays that intersect the source and others that don't.

Those rays that intersect the light define on it a point of origin of the radiance and a direction of illumination. It is essential to determine if the origin is hidden with respect to the illuminated point, in which case a shadow ray has to be traced.

For all visible points we will evaluate the directional emission of light from the source by calling its shader. The emitted radiance accumulates to the final value.

The number of rays that intersect the source of light helps us to evaluate its domain and calcuate the value of accumulated radiance.

One problem of this method is that there might be cases in which the cone shows little similarity with the form of the surface. In this case the number of samples that comply with the source can be too low to guarantee a correct evaluation of the emitted radiance.

The sampling method of the domain

When we generated directions over the illumination cone we said, that their distribution had to be uniform. In order for the following integration to produce correct results, the concept of uniform distribution dictates that each of the samples should correspond to the same differential of the solid angle. This can be achieved by uniformly sampling the interval [cos(sigma max),1], for the deviation of the axis of the cone, and uniformly sampling the range [0,2pi] for the rotation of this axis.

In order to introduce another level of layering, sampling could be done using a uniform net of samples that are distributed according to the methods described above, with slight differences though.

The number of samples and the jittering factor of the uniform net can be configured as one of the environmental options. This allow working with a single sample distributed over the cone (distributed ray tracing type or Monte Carlo only), as well as with several samples in order to improve precision and slight differences in order to avoid aliasing.

The evaluation of shadows

During the sampling process we only accumulate radiance of samples that are not hidden with respect to the surface. This process will automatically generate zones with varying intensity of illumination, which will cause certain zones to be in shadow areas. Should all samples of a source be hidden by an object, then the source is completely hidden and the point is not visible.

About ALEPh: seron@posta.unizar.es; magallon@ivo.cps.unizar.es