In computer graphics, the rendering equation is an integral equation in which the equilibrium radiance leaving a point is given as the sum of emitted plus reflected radiance under a geometrical optics approximation. It was independently introduced into computer graphics by David Immel et al.[1] and James Kajiya[2] in 1986. The various realistic rendering techniques in computer graphics attempt to solve this equation.
The physical basis for the rendering equation is the law of conservation of energy. Assuming that denotes radiance, we have that at each particular position and direction, the outgoing light () is the sum of the emitted light () and the reflected light (). The reflected light itself is the sum from all directions of the incoming light () multiplied by the surface reflection and cosine of the incident angle.
Equation form
The rendering equation may be written in the form
where
is the total spectral radiance of wavelength directed outward along direction at time , from a particular position
is the weakening factor of outward irradiance due to incident angle, as the light flux is smeared across a surface whose area is larger than the projected area perpendicular to the ray. This is often written as .
Two noteworthy features are: its linearity—it is composed only of multiplications and additions, and its spatial homogeneity—it is the same in all positions and orientations. These mean a wide range of factorings and rearrangements of the equation are possible. It is a Fredholm integral equation of the second kind, similar to those that arise in quantum field theory.[3]
Note this equation's spectral and time dependence — may be sampled at or integrated over sections of the visible spectrum to obtain, for example, a trichromatic color sample. A pixel value for a single frame in an animation may be obtained by fixing motion blur can be produced by averaging over some given time interval (by integrating over the time interval and dividing by the length of the interval).[4]
Note that a solution to the rendering equation is the function . The function is related to via a ray-tracing operation: The incoming radiance from some direction at one point is the outgoing radiance at some other point in the opposite direction.
Although the equation is very general, it does not capture every aspect of light reflection. Some missing aspects include the following:
Transmission, which occurs when light is transmitted through the surface, such as when it hits a glass object or a water surface,
Subsurface scattering, where the spatial locations for incoming and departing light are different. Surfaces rendered without accounting for subsurface scattering may appear unnaturally opaque — however, it is not necessary to account for this if transmission is included in the equation, since that will effectively include also light scattered under the surface,
Polarization, where different light polarizations will sometimes have different reflection distributions, for example when light bounces at a water surface,
Non-linear effects, where very intense light can increase the energy level of an electron with more energy than that of a single photon (this can occur if the electron is hit by two photons at the same time), and emission of light with higher frequency than the frequency of the light that hit the surface suddenly becomes possible, and
Doppler effect, where light that bounces off an object moving at a very high speed will get its wavelength changed: if the light bounces off an object that is moving towards it, the light will be blueshifted and the photons will be packed more closely so the photon flux will be increased; if it bounces off an object moving away from it, it will be redshifted and the photon flux will be decreased. This effect becomes apparent only at speeds comparable to the speed of light, which is not the case for most rendering applications.
For scenes that are either not composed of simple surfaces in a vacuum or for which the travel time for light is an important factor, researchers have generalized the rendering equation to produce a volume rendering equation[5] suitable for volume rendering and a transient rendering equation[6] for use with data from a time-of-flight camera.