Project 5: Incremental Instant Radiosity Implementation
Introduction

Instant radiosity is important techniques for real-time global illuminatio which is a fundamental procedure for instant rendering from the radiance equation. Operating directly on the textured scene description, the very efficient and simple algorithm produces photorealistic images without any finite element kernel or solution discretization of the underlying integral equation. However, its efficiency is still limited. In addition to regenerating all point light sources, incremental instant radiosity is porposed for rendering single-bounce indirect illumination in real time on currently available graphics hardware. The method is based on the instant radiosity algorithm, where virtual point lights (VPLs) are generated by casting rays from the primary light source. Hardware shadow maps are then employed for determining the indirect illumination from the VPLs. Our main contribution is an algorithm for reusing the VPLs and incrementally maintaining their good distribution. As a result, only a few shadow maps need to be rendered per frame as long as the motion of the primary light source is reasonably smooth. This yields real-time frame rates even when hundreds of VPLs are used.

Pros and Cons

The advantages and disadvantages of the incremental instant radiosity is as follows:

Significant advantages:

  • Can use OpenGL hardware to decrease rendering time
  • Computed solution can be displayed directly
  • Low memory requirements, since it works in image space rather than creating matrix elements
  • Algorithm can be extended to allow specular surfaces
  • Radience contribution from textures is directly computed

Disadvantages:

  • View dependent (although Keller does present a method of generating walk-throughs in the paper)
  • This method is not terribly accurate, it generates nice pictures, but should not be used for predictive results.
  • Final output quality is dependant on hardware capabilities. For instance, the accumulation buffer needs to be fairly deep to allow large numbers of images to be composited.
  • Doesn't work as well on scenes lit primarily by indirect lighting. Since it uses a quasi-random walk to distribute photons, several hundred frames may be required to get photons to arrive where they are needed.

 

Simple Overview of Incremental Instant Radiosity

Instant radiosity process: For a full description of the algorithm, see the original paper.... However, here is a (very) brief overview.  At runtime, a number of photons are selected from the lightsources to be cast into the scene. In addition, the mean reflectivity r of the scene is calculated.  Initially there are N photons. For each photon, the scene is rendered, placing a point light source at the origin of the photon.  Then, rN of these photons are cast into the scene. When a photon hits a surface, it is attenuated by the diffuse component of that surface. Then the scene is rendered again, with the point lightsource appropriately moved. r2N of the original points continue on to a second bounce.

radiosity.PNG

The process is repeated until all of the paths are complete.

Radiosity_Progress.png

In essence, this algorithm is generating an increasingly accurate approximation of the average radiance for every point in the scene with the rendering pass.

 

Incremental process

reuse.png

You must first justistify the existence of each VPLs because the generation rays may be occluded due to the movement of the light sources and objects. You must remove all invalid VPLs. You must also adjust the contribution of valid VPLs. Furthermore, you must increase the VPLs to the desired numbers. Finally, you render the scene with all existing VPLs.

Check Points
  1. Parse in the scene, material, light and other informations. (15%)
  2. Fast local rendering with OpenGL. (5%)
  3. Shoot out light rays from light sources to generate VPLs. (15%)
  4. Visualize these VPLs with OpenGL. (5%)
  5. Generate a shadow map for each VPL. (15%)
  6. Rendering the scene by raserizing all scene triangles by shading with all VPLs with their shadow map. (15%)
  7. Dynamics updating the characteristics of VPLs with incremenatl instant radiosity. (20%)
    1. Remove invalid VPLs.
    2. Adjust valid VPLs.
    3. Add new VPLs.
  8. Acceleration with KD-tree or BVH (10%)
  9. Using other types of light sources such as area light sources. (10%)
Citation

[1] Keller, Alexander, "Instant Radiosity", Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, July, 1997

[2] Samuli Laine, Hannu Saransaari, Janne Kontkanen, Jaakko Lehtinen, and Timo Aila, "Incremental Instant Radiosity for Real-Time Indirect Illumination"
in, "Proc. EGSR 2007", June 2007

Results

Ying-Sheng Luo, Incremental Instant Radiosity Implementation -- 羅應陞

Detail

Yan-Lin Chen , Incremental Instant Radiosity Implementation -- 陳彥霖

Detail

胡柯民, Incremental Instant Radiosity Implementation -- 胡柯民

Detail

呂仁傑, Incremental Instant Radiosity - 呂仁傑

Detail

林進仰、鄭皓宇, Incremental Instant Radiosity Implementation -- 林進仰、鄭皓宇

Detail

朱駿采、潘琮皓, Incremental Instant Radiosity Implementation -- 潘琮皓、朱駿采

Detail

Yi-You Chen(陳奕佑), Incremental Instant Radiosity Implementation -- 陳奕佑

Detail

郭昱粲, and 林俞彣, Incremental Instant Radiosity Implementation -- 郭昱粲、林俞彣

Detail

呂柏儒、陳柏君, Incremental Instant Radiosity Implementation -- 呂柏儒、陳柏君

Detail

鍾賢廣, Incremental Instant Radiosity Implementation -- 鍾賢廣

Detail