In computer graphics, physically-based rendering relies on the abstractions of both geometric optics and radiometry to render realistic images. Geometric optics is the modeling of light propagation as discretized rays: an idealized, one-dimensional beam of light. Ray tracing is the simulation of light propogation with these discretized rays. Radiometry details the measurement of electromagnetic radiation, including visible light. Radiometry, in terms of geometric optics, is foundational to computer graphics.



Most radiometric quantities are measured in terms of power. In radiometry, power is calculated over all wavelengths of electromagnetic radiation. In computer graphics, we are only interested in visible light: electromagnetic radiation with wavelengths between 400 and 800 nanometers. In general, power in computer graphics is further simplified to calculations done at only three discrete wavelengths. We calculate power at only three discrete wavelengths because our color displays only require this data to display a color image. \footnote{Power over a narrow band of electromagnetic radiation is known specifically as Spectral power. Computing radiometric quantities in terms of Spectral power is known as Spectroradiometry. However, being this precise can be cumbersome and it is rarely done in computer graphics literature. Likewise, we will trade precision for simplicity and not distinguish between Radiometry and Spectroradiometry.}

As with the discretization of radiometry into three color channels, the main goal of most computer graphics is rendering of images to color displays. Our rendering is calculated with the output in mind. For this reason, it is unusual to formalize rendering results to absolute units. Instead, power is measured as a relative quantity, relative either to other values within a rendering, or to the output capabilities of the color display being used.

Power is energy per unit time. In addition to being discretized into measurement over narrow wavelength bands of the electromagnetic spectrum and rarely being measured in absolute terms, the time component of power calculations is also usually only measured implicitly, in relative terms.


Radiance represents the power per unit solid angle per unit projected area. In a color rendering, we can think of each final pixel color as representing a radiance measurement. The surfaces in the image are projected from the 3D scene world into a 2D image. We see the power reflected off of these surfaces through the solid angle of each pixel area, relative to some virtual eye location. We can see how this represents a measurement of power per unit solid angle per unit projected area since we average over the pixel to arrive at a final pixel color.

With ray tracing, we shoot virtual rays from the eye through the pixels to calculate the reflected power that passes through each. Each ray is a radiance query where we calculate the radiance $L$ reflected in the ray direction $\hat{v}$ from the surface intersection point $\vec{p}$, specifically $L(\vec{p},\hat{v})$. In order to calculate the reflected radiance, we need to know how much power is incident on the surface (irradiance) and also model in some way how incident light is reflected.

Irradiance and Radiosity

Irradiance is how much power is incident on a surface per unit area. As a first step to calculating how much power a surface reflects in any given direction, we need to know how much power is incident on that surface. Given an incoming radiance value for some small solid angle $ d\omega$, we can convert to irradiance by projecting that radiance value to the surface: multiplying by the cosine of the angle between $\omega_i$ and the surface normal $\hat{n}$: $\theta_i$ (Equation \ref{irradiance&radiance}). This allows us to know the contribution from some small part of the hemisphere on the power per unit area of a surface.

The simplest way surfaces can reflect light is equally in all directions. These surfaces are known as perfectly diffuse or Lambertian. Radiosity is a useful concept in such instances.

Radiosity is the total power reflected and emitted from a surface per unit area (also known as Radiant exitance). Both irradiance and radiosity have the same units, since they are describing similar phenomena just in opposite directions. If we know the total amount of light incident on a Lambertian surface, we also know how much light is reflected. In this case, radiosity $B$ is equal to $\rho E$, where $E$ is the irradiance, and $\rho$ is the albedo (percent of radiation reflected) of the surface. Once we've calculated the radiosity of a surface, we know the reflected radiance in any direction. We just divide the radiosity value by the total projected solid angle of the hemisphere, $\pi$, giving us the radiosity per unit projected solid angle which is also the reflected radiance.

The Bidirectional Reflectance Distribution Function

The bidirectional reflectance distribution function (BRDF) is a convention for describing power transfer at an opaque surface~\cite{Nicodemus65}. The function describes the ratio of outgoing radiance to incoming irradiance as a function of outgoing and incoming angles (Equation \ref{brdf}, see figure~\ref{renderingeqdomain}). A BRDF can also be dependent on spatial location, time, and wavelength. Since we usually only calculate reflectance for three color channels, it's common for the wavelength-variance of a BRDF to be implicit. That is, we write it as a function without parameterizing by wavelength but the calculation is done three times, once for each color channel.

A BRDF allows us to simplify complicated surface reflectance phenomenon into a single function. To compute the differential contribution of reflected radiance in the direction $\omega_o$ reflected from direction $\omega_i$, we calculate incoming radiance from $\omega_i$, project it to the surface by multiplying by the cosine of $\theta_i$, and multiply by the BRDF (Equation \ref{outgoingradiance}).

Conceptually, the BRDF specifies the proportion of light that is reflected in the outgoing direction, for some small solid angle of the hemisphere. In practice, this function can be completely arbitrary. If geometric optics are to be modeled accurately, a BRDF must be reciprocal, $f_r(\omega_i,\omega_o)=f_r(\omega_o,\omega_i)$, and not reflect more light than is incident, $\forall \omega_i \int_{\Omega}f_r(\omega_i,\omega_o)cos(\theta_o)d\omega_o \le 1$ (see appendix~\ref{appendix:albedo}).

For example, the BRDF of a Lambertian surface is simply $\sfrac{\rho}{\pi}$. Again, $\rho$ represents the albedo of the surface. The integral of this function over the hemisphere with respect to projected solid angle, $\int_{\Omega}\frac{\rho}{\pi}cos(\theta_o)\omega_o$, is just $\rho$. Consequently, for a Lambertian surface to reflect less light than is incident, $\rho$ must be less than one.

The Rendering Equation

We can now detail mathematically the equation we attempt to solve when rendering an image using the physically based concepts of Radiometry. Equation \ref{mainrenderingequation} details physically-based rendering and is known as the rendering equation.

We have taken the equation for differential reflected radiance (Equation \ref{outgoingradiance}) and simply integrated over the entire hemisphere of directions. We then add a dependence on position $\vec{p}$, since we are performing this calculation at many different positions in a scene and the BRDF can vary spatially over these positions. We also model light emission $L_e(\vec{p},\omega_o)$ at any point in a scene, allowing the specification of light sources. As stated earlier, this calculation can also be dependent on time and wavelength. Put simply, the total radiance reflected from point $\vec{p}$ in direction $\omega_o$ is the sum of emitted radiance and reflected radiance.

When rendering an image, for every surface point $\vec{p_i}$ that is visible along the direction $\omega_o$ we perform the rendering equation calculation. This simple equation is central to every computer graphics rendering algorithm. Although it is a simple formulation, the difficulty comes with the fact that the incoming radiance over the hemisphere of directions is not known. Each unknown incoming radiance value requires another rendering equation calculation. Doing this calculation recursively until a solution converges is incredibly computational intensive. For this reason, most graphics algorithms detail ways to simplify this calculation.

« Airclick Interface Script | Home | Better Photography Metrics »