The Radiosity Method Donald Fong February 10, 2004
Why? Ray tracing has a visual signature Only models perfect specular reflection and transmission Interaction between diffusely reflecting surfaces Interiors, matte surfaces, indirect lighting
Basic idea Divide surfaces into discrete patches Object space algorithm Model light transfer between patches as system of linear equations Solve matrix equation for radiosity of each patch Do it for R,G,B Render patches as colored polygons
Simplifying assumptions All surfaces are perfectly diffuse Does not matter which way light enters or leaves a surface Radiosity is constant over a patch
Radiosity Equation B i is radiosity of patch i energy per unit area leaving a surface patch per unit time rate energy emitted + rate energy reflected E i is non-zero for emitters R i is reflectivity of the patch Wavelength dependent F ij is the form factor – how much light patch j contributes to patch i Depends on geometric relationship – distance and relative orientation
Radiosity solution Finding form factors Hemicube method Meshing strategies Solving set of linear equations to get radiosity for each patch
Form factor example Almost 100%
Hemicube method Efficient F q can be precomputed Approximate Aliasing
Gauss-Siedel method Iterative Generates sequence of vectors that converges to the solution Slow
Gathering vs. Shooting Gathering One iteration updates a single patch by gathering contributions from all other patches Shooting (and sorting) Single iteration updates all receiving patches with unshot energy Process patches according to amount of energy they are likely to radiate
Progressive radiosity
Another example
Problems Aliasing from hemicube method Uniform pixel size Using bilinear interpolation to reconstruct radiosity function Using meshing of scene independent of variations in radiosity function
Hemicube aliasing Limited resolution of the hemicube pixels Patches of same size map to different number of cells
Reconstruction artifacts
Meshing artifacts Shadow leakage Light leakage
Meshing strategies Discontinuity meshing Completed before radiosity solution Predict where discontinuities will occur Adaptive meshing Refine a “start” mesh as the solution progresses
Discontinuity meshing Mesh around expected discontinuities Sharp boundaries from point light source or object contact Derivative discontinuities from area light sources and multi-object shadows
Hierarchical radiosity Use different resolution depending on who is emitting and who is receiving
Remeshing example
Summary Diffuse only Costly to add specular Not efficient Meshing Memory intensive
Two pass solution