page_title: Radiosity (computer graphics)
section_title: Overview of the radiosity algorithm
hierarchical_section_title: Radiosity (computer graphics) / Overview of the radiosity algorithm
caption_attribution_description: The Progress of the Radiosity Algorithm
context_page_description: In 3D computer graphics, radiosity is an application of the finite element method to solving the rendering equation for scenes with surfaces that reflect light diffusely. Unlike rendering methods that use Monte Carlo algorithms, which handle all types of light paths, typical radiosity only account for paths which leave a light source and are reflected diffusely some number of times before hitting the eye. Radiosity is a global illumination algorithm in the sense that the illumination arriving on a surface comes not just directly from the light sources, but also from other surfaces reflecting light. Radiosity is viewpoint independent, which increases the calculations involved, but makes them useful for all viewpoints.
  Radiosity methods were first developed in about 1950 in the engineering field of heat transfer. They were later refined specifically for the problem of rendering computer graphics in 1984 by researchers at Cornell University and Hiroshima University.
  Notable commercial radiosity engines are Enlighten by Geomerics; 3ds Max; form•Z; LightWave 3D and the Electric Image Animation System.
context_section_description: The surfaces of the scene to be rendered are each divided up into one or more smaller surfaces (patches).
  A view factor (also known as form factor) is computed for each pair of patches; it is a coefficient describing how well the patches can see each other.  Patches that are far away from each other, or oriented at oblique angles relative to one another, will have smaller view factors.  If other patches are in the way, the view factor will be reduced or zero, depending
  on whether the occlusion is partial or total.
  The view factors are used as coefficients in a linear system of rendering equations.  Solving this system yields the radiosity, or brightness, of each patch, taking into account diffuse interreflections and soft shadows.
  Progressive radiosity solves the system iteratively with intermediate radiosity values for the patch, corresponding to bounce levels.  That is, after each iteration, we know how the scene looks after one light bounce, after two passes, two bounces, and so forth.  This is useful for getting an interactive preview of the scene.  Also, the user can stop the iterations once the image looks good enough, rather than wait for the computation to numerically converge.
  Another common method for solving the radiosity equation is "shooting radiosity," which iteratively solves the radiosity equation by "shooting" light from the patch with the most energy at each step.  After the first pass, only those patches which are in direct line of sight of a light-emitting patch will be illuminated. After the second pass, more patches will become illuminated as the light begins to bounce around the scene.  The scene continues to grow brighter and eventually reaches a steady state.
caption: As the algorithm iterates, light can be seen to flow into the scene, as multiple bounces are computed. Individual patches are visible as squares on the walls and floor.
exif: {}