Rendering equation

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
File:Rendering eq.png
The rendering equation describes the total amount of light emitted from a point x along a particular viewing direction, given a function for incoming light and a BRDF.

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 geometric optics approximation. It was simultaneously 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 L denotes radiance, we have that at each particular position and direction, the outgoing light (Lo) is the sum of the emitted light (Le) and the reflected light. The reflected light itself is the sum from all directions of the incoming light (Li) multiplied by the surface reflection and cosine of the incident angle.

Equation form

The rendering equation may be written in the form

L_{\text{o}}(\mathbf x,\, \omega_{\text{o}},\, \lambda,\, t) \,=\, L_e(\mathbf x,\, \omega_{\text{o}},\, \lambda,\, t) \ +\, \int_\Omega f_r(\mathbf x,\, \omega_{\text{i}},\, \omega_{\text{o}},\, \lambda,\, t)\, L_{\text{i}}(\mathbf x,\, \omega_{\text{i}},\, \lambda,\, t)\, (\omega_{\text{i}}\,\cdot\,\mathbf n)\, \operatorname d \omega_{\text{i}}

where

  • \lambda\,\! is a particular wavelength of light
  • t\,\! is time
  • \mathbf x is the location in space
  • \mathbf n is the surface normal at that location
  • \omega_{\text{o}} is the direction of the outgoing light
  • \omega_{\text{i}} is the negative direction of the incoming light
  • L_{\text{o}}(\mathbf x,\, \omega_{\text{o}},\, \lambda,\, t) is the total spectral radiance of wavelength \lambda\,\! directed outward along direction \omega_{\text{o}} at time t\,\!, from a particular position \mathbf x\,\!
  • L_e(\mathbf x,\, \omega_{\text{o}},\, \lambda,\, t) is emitted spectral radiance
  • \Omega is the unit hemisphere centered around \mathbf n containing all possible values for \omega_{\text{i}}
  • \int_\Omega \dots\, \operatorname d\omega_{\text{i}} is an integral over \Omega
  • f_r(\mathbf x,\, \omega_{\text{i}},\, \omega_{\text{o}},\, \lambda,\, t) is the bidirectional reflectance distribution function, the proportion of light reflected from \omega_{\text{i}} to \omega_{\text{o}} at position \mathbf x\,\!, time t\,\!, and at wavelength \lambda\,\!
  • L_{\text{i}}(\mathbf x,\, \omega_{\text{i}},\, \lambda,\, t) is spectral radiance of wavelength \lambda\,\! coming inward toward \mathbf x\,\! from direction \omega_{\text{i}} at time t\,\!
  • \omega_{\text{i}} \cdot \mathbf n is the weakening factor of inward 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 \cos \theta_i.

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 — L_{\text{o}}\,\! 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 t\,\!; motion blur can be produced by averaging L_{\text{o}}\,\! 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 L_o. The function L_i is related to L_o 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.

Applications

Solving the rendering equation for any given scene is the primary challenge in realistic rendering. One approach to solving the equation is based on finite element methods, leading to the radiosity algorithm. Another approach using Monte Carlo methods has led to many different algorithms including path tracing, photon mapping, and Metropolis light transport, among others.

Limitations

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, like for example 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,
  • Phosphorescence, which occurs when light or other electromagnetic radiation is absorbed at one moment in time and emitted at a later moment in time, usually with a longer wavelength (unless the absorbed electromagnetic radiation is very intense),
  • Interference, where the wave properties of light are exhibited,
  • Fluorescence, where the absorbed and emitted light have different wavelengths,
  • 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
  • Relativistic Doppler effect, where light that bounces on an object that is moving in a very high speed will get its wavelength changed; if the light bounces at an object that is moving towards it, the impact will compress the photons, so the wavelength will become shorter and the light will be blueshifted and the photons will be packed more closely so the photon flux will be increased; if it bounces at an object that is moving away from it, it will be redshifted and the photons will be packed more sparsely so the photon flux will be decreased.

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.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.

External links

  • Lecture notes from Stanford University course CS 348B, Computer Graphics: Image Synthesis Techniques