ΘρϵηΠατπ

Radiometry

Radiometry is the measurement of electromagnetic radiation in physical units. In rendering, radiometry gives the language used to describe how light energy moves through space, across surfaces, and along directions.

Geometric Quantities

Surface
In radiometry, a surface is usually modeled as a two-dimensional manifold in Euclidean space, typically M3. This means that near each ordinary point, the surface can be described by two coordinates. When edges are relevant, the surface is treated as a manifold with boundary. Rendering systems may approximate surfaces by polygon meshes, but the radiometric definitions below apply pointwise on smooth pieces.
Surface Patch
A surface patch around a point p is a small region of a surface containing p. Area densities in radiometry are defined by shrinking such patches around the point.
Surface Normal
A surface normal at a point p on a surface M3 is a unit direction perpendicular to the tangent space Mp.
Solid Angle
Let 𝒮𝕊2 be the σ-algebra of surface-measurable subsets of the unit sphere 𝕊2. A solid angle is the function σ:𝒮𝕊20 that sends a measurable direction set A𝒮𝕊2 to the surface area of A as a subset of 𝕊2: σ(A)=area𝕊2(A). Thus σ(A)0. This is the three-dimensional analogue of defining an angle in radians by arc length on the unit circle.
Solid Angle is a Measure
With 𝒮𝕊2 as above, the solid angle function σ:𝒮𝕊20 is a measure on (𝕊2,𝒮𝕊2).
The empty set has surface area 0, so σ()=area𝕊2()=0. Now let A1,A2,𝒮𝕊2 be pairwise disjoint. By the definition of induced surface area, the surface area of a countable disjoint union is obtained by adding the surface areas of the pieces. Hence σ(j=1Aj)=area𝕊2(j=1Aj)=j=1area𝕊2(Aj)=j=1σ(Aj). Therefore σ satisfies countable additivity and is a measure.
Solid Angle of a Single Direction
Let ω𝕊2. Compute the solid angle of the one-point set {ω}.
By the definition of solid angle, σ({ω})=area𝕊2({ω}). A single point on a surface has surface area 0. Therefore σ({ω})=0. Thus a single point of 𝕊2 has solid angle 0, even though small neighborhoods around that point can have positive solid angle.
Countable Direction Sets Have Zero Solid Angle
If A𝕊2 is countable, then σ(A)=0.
Since A is countable, write A={ω1,ω2,}, allowing repetitions if needed. For each k, the one-point set {ωk} has solid angle 0 by solid angle of a single direction. By countable subadditivity of surface area on 𝕊2, σ(A)=σ(k=1{ωk})k=1σ({ωk})=0. Since σ(A)0, this gives σ(A)=0.
Projected Unit Disk Has Solid Angle 2π
Let W={(u,v)2:u2+v2<1} and define f(u,v)=(u,v,1u2v2). Compute the solid angle of f(W)𝕊2.
By the definition of solid angle, σ(f(W))=area𝕊2(f(W)). The projected unit disk area computation gives area𝕊2(f(W))=2π. Therefore σ(f(W))=2π.
Steradian
A steradian, denoted sr, is the unit used to record values of solid angle. If σ(A)=1, then A has solid angle 1sr.
Orthogonal Projection onto a View Plane
Let ω𝕊2. The view plane perpendicular to ω is the plane through the origin with normal ω: ω={x3:xω=0}. The orthogonal projection onto the view plane is the function projω:3ω defined by projω(x)=x(xω)ω.
Projected Area
Let P3 be a surface patch, and let ω𝕊2. The projected area of P in direction ω is the surface area of its image under orthogonal projection onto the view plane: areaω(P)=areaω(projω(P)), when this projected image has a well-defined two-dimensional area.
Projected Area of a Flat Patch
Let P be a surface patch contained in a plane with unit surface normal n. For every ω𝕊2, areaω(P)=|nω|area(P).
First consider a parallelogram P spanned by tangent vectors u,v in the plane. Its area is u×v, and because u and v lie in the plane, u×v is parallel to n. The projected parallelogram is spanned by u=projω(u),v=projω(v). The area of the projected parallelogram is u×v. The vectors u and v lie in ω, so u×v is perpendicular to ω, and therefore is a scalar multiple of ω. Since ω is a unit vector, norm equals absolute dot product with a parallel unit vector gives u×v=|(u×v)ω|. By the oriented projected area identity, (u×v)ω=(u×v)ω. Hence areaω(P)=|(u×v)ω|. Since u×v is a scalar multiple of the unit normal n, the dot product of a vector parallel to a unit vector gives |(u×v)ω|=|nω|u×v=|nω|area(P). Thus the formula holds for parallelograms. Since projω is a linear map on the plane containing P, the same constant area-scaling factor |nω| applies to every measurable patch in that plane. Therefore areaω(P)=|nω|area(P).

Radiometric Quantities

Radiant Energy
Radiant energy is energy carried by electromagnetic radiation. Radiant energy is a scalar physical quantity: it records an amount of energy, not a direction. Radiant energy is measured in joules.

For example, if a short pulse of light carries 2J of energy, then its radiant energy is 2J, where J denotes the joule unit of energy.

Watt
A watt, denoted W, is the unit of power. One watt is one joule per second: 1W=1Js1.
Radiant Flux
Let P be a surface patch. After choosing a time coordinate, let ΔQP:×>00 be the function whose value ΔQP(t,τ) is the radiant energy crossing P during the time interval from t to t+τ. The radiant flux, also called radiant power, through P at time t is the instantaneous rate ΦP(t)=limτ0+ΔQP(t,τ)τ, whenever this limit exists. Radiant flux has units of joules per second, more commonly called watts.

For example, if no electromagnetic radiation crosses the chosen surface patch P during a small time interval, then ΔQP(t,τ)=0J, so ΦP(t)=0W. If radiation crosses P at a constant rate of 3joules every 1second, then ΔQP(t,τ)=3τ joules, so ΦP(t)=3W.

Radiant Energy from Flux
Let P be a surface patch, let t0,t1 with t0<t1, and suppose that there is a differentiable accumulated radiant energy function QP:[t0,t1] such that QP(t1)QP(t0)=ΔQP(t0,t1t0). If the radiant flux through P is ΦP(t)=QP(t) for every t(t0,t1), and ΦP is continuous on [t0,t1], then the radiant energy crossing P from t0 to t1 is ΔQP(t0,t1t0)=t0t1ΦP(t)dt.
Since ΦP(t)=QP(t) on (t0,t1), the Fundamental Theorem of Calculus II gives t0t1ΦP(t)dt=QP(t1)QP(t0). By the defining property of the accumulated radiant energy function on this interval, QP(t1)QP(t0)=ΔQP(t0,t1t0). Therefore ΔQP(t0,t1t0)=t0t1ΦP(t)dt.

As a more physical example, aim a flashlight at a small circular patch P on a wall. If the flashlight output pulses in time, then the radiant flux ΦP(t) through that circular patch changes with time. For instance, a simple model might be ΦP(t)=2W+Wsin(t), meaning the patch receives 2W on average, with the instantaneous radiant flux rising and falling between 1W and 3W.

Irradiance
Let (Pk) be a sequence of surface patches that shrinks to p. Write ΦPkin(t) for the incoming radiant flux through Pk at time t. The irradiance at p and time t is the area density of incoming flux: irradiance(p,t)=limkΦPkin(t)area(Pk), when this limit exists and has the same value for the shrinking patches under consideration. Irradiance is measured in Wm2, using the watt and the metre.

A helpful picture is rain passing through a small window. If the window is twice as large, it catches about twice as many drops, so dividing by the window area gives a rate per area. For light, the situation is smoother: a light source is modeled as producing a continuous flow of radiant flux, not separate drops that must be counted one by one. That is why shrinking the patch area and taking a limit can approach a nonzero density, even though an actual rain window made small enough might have no drops pass through during a short measurement.

For example, if 20W of radiant flux arrives uniformly across a flat surface patch of area 4m2, then the irradiance on that patch is 20W/4m2=5Wm2, where m denotes the metre unit of length.

Radiant Flux from Irradiance
Let P be a surface patch on a surface, and fix a time t. Suppose the incoming irradiance irradiance(q,t) is defined at each point qP, is measurable and integrable with respect to surface area on P, and represents the area density of incoming radiant flux with respect to the surface area on P. Then the incoming radiant flux through P is ΦPin(t)=Pirradiance(q,t)dA, where dA is the surface area element on P.
Partition P into small surface patches P1,,PN, and choose a representative point qjPj. Since irradiance(q,t) is the area density of incoming flux, the flux through Pj is approximated by irradiance(qj,t)area(Pj). Adding the approximations gives ΦPin(t)j=1Nirradiance(qj,t)area(Pj). In the limit as the partition is refined, these sums converge to the integral of irradiance over the subset P with respect to surface area. Therefore ΦPin(t)=Pirradiance(q,t)dA.

The measurability of qirradiance(q,t) is not automatic from the pointwise limit notation in the definition of irradiance. To use the integral over P, one either assumes this surface-measurability as part of the radiometric model or proves it from more primitive data. A common sufficient route is to express irradiance in each coordinate patch of the surface and prove that the coordinate expression is Borel measurable; in particular, a continuous coordinate expression is Borel measurable by continuous functions are Borel measurable.

Irradiance from Shrinking Circular Patches
Let M=2×{0}3 be a flat surface, and let p=(0,0,0). For each k1, let Pk={(x,y,0)M:x2+y21k2}. Suppose that, at a fixed time t, the incoming radiant flux through every patch Pk is ΦPkin(t)=5Wm2area(Pk). Prove that the irradiance at p and time t is 5Wm2.
The patches form a decreasing sequence, since Pk+1Pk for every k. Also, k=1Pk={p}, because the only point whose distance from p is at most 1/k for every k is p itself. Therefore Pk shrinks to p.

The area of Pk is π/k2. By the given flux formula, ΦPkin(t)area(Pk)=5Wm2area(Pk)area(Pk)=5Wm2. Hence irradiance(p,t)=limkΦPkin(t)area(Pk)=5Wm2.

Radiant Exitance
Let (Pk) be a sequence of surface patches that shrinks to p. Write ΦPkout(t) for the outgoing radiant flux through Pk at time t. The radiant exitance at p and time t is the area density of outgoing flux: M(p,t)=limkΦPkout(t)area(Pk), when this limit exists and has the same value for the shrinking patches under consideration. Radiant exitance is measured in Wm2, using the watt and the metre.

For example, if a glowing panel emits 12W uniformly from a surface area of 3m2, then its radiant exitance is 12W/3m2=4Wm2.

Radiant Intensity
Suppose ω𝕊2, and let (Ak) be a sequence of subsets of 𝕊2 that shrinks to ω. Write ΦAk(t) for the radiant flux emitted into Ak at time t, and write σ(Ak) for the set's solid angle. The radiant intensity at ω and time t is the solid-angle density of emitted flux: I(ω,t)=limkΦAk(t)σ(Ak), when this limit exists and has the same value for the shrinking direction sets under consideration. Radiant intensity is measured in Wsr1, using the watt and steradian.

Radiant intensity uses the same density idea, but with direction sets instead of surface patches. Imagine a very small light source at the center of the unit sphere. If we accept twice as large a cone of outgoing directions, we expect about twice as much emitted radiant flux to lie in that cone. Dividing by the cone's solid angle, then shrinking the cone around one direction, gives a directional density of emitted power.

For example, if a small source emits 10W uniformly into a cone whose solid angle is 2sr, then its average radiant intensity over that cone is 10W/2sr=5Wsr1.

Radiant Flux from Radiant Intensity
Let A𝕊2 be a measurable set of outgoing directions, and fix a time t. Suppose the radiant intensity I(ω,t) is defined for ωA, is measurable and integrable with respect to solid angle measure on A, and represents the solid-angle density of emitted radiant flux. Then the radiant flux emitted into A is ΦA(t)=AI(ω,t)dσ(ω), where dσ means integration with respect to solid angle on 𝕊2.
Partition A into small direction sets A1,,AN, and choose a representative direction ωjAj. Since I(ω,t) is the solid-angle density of emitted flux, the flux emitted into Aj is approximated by I(ωj,t)σ(Aj). Adding the approximations gives ΦA(t)j=1NI(ωj,t)σ(Aj). In the limit as the direction partition is refined, these sums converge to the integral of I over the subset A with respect to solid angle. Therefore ΦA(t)=AI(ω,t)dσ(ω).
Radiant Intensity from Shrinking Direction Sets
Fix a direction ω𝕊2 and a time t0. Let (Ak) be direction sets that shrink to ω, and suppose σ(Ak)=1k. Suppose the emitted radiant flux into Ak at time t0 is ΦAk(t0)=6k+2k2 watts. Compute the radiant intensity at ω and t0.
By the definition of radiant intensity, I(ω,t0)=limkΦAk(t0)σ(Ak). Substituting the given values, ΦAk(t0)σ(Ak)=6k+2k21k=6+2k. Therefore I(ω,t0)=limk(6+2k)=6. Thus the radiant intensity at ω and t0 is 6Wsr1.
Radiance
Radiance measures radiant flux per unit projected area and per unit solid angle. Let (Pk) be a sequence of surface patches that shrinks to p, and let (Ak) be a sequence of direction sets that shrinks to ω. Write ΦPk,Ak(t) for the flux associated with Pk and Ak at time t. The radiance at p, in direction ω, at time t, is radiance(p,ω,t)=limkΦPk,Ak(t)areaω(Pk)σ(Ak), when this limit exists and has the same value for the shrinking patches and direction sets under consideration. Here areaω(Pk) is the projected area of Pk in direction ω. Equivalently, when areaω(Pk)=|nω|area(Pk), radiance(p,ω,t)=limkΦPk,Ak(t)|nω|area(Pk)σ(Ak). Radiance is measured in Wm2sr1, using the watt, metre, and steradian.

Radiance combines the two localizations above. It measures how much radiant flux passes through an imaginary tiny window around p, restricted to a tiny cone of directions around ω, after dividing out both the window's projected area and the cone's solid angle. The window is just a measuring device around the point p; it does not have to be a physical surface.

For example, if 6W of flux is associated with 2m2 of projected area and 3sr of directions, then the average radiance over that area-direction set is 6W/(2m23sr)=1Wm2sr1.

Radiance Contribution to Irradiance Density
Let p be a point on a surface patch with unit surface normal n. For a direction set A𝕊2, let irradiancep(A) be the irradiance contribution at p from incoming directions in A. If (Ak) is a sequence of direction sets that shrinks to ωi, and radiance_in is locally stable near ωi, then the solid-angle density of irradiancep at ωi is limkirradiancep(Ak)σ(Ak)=radiance_in(p,ωi)|nωi|.
By the definition of radiance, flux from directions in a small direction set around ωi is approximated by radiance_in(p,ωi)areaωi(P)σ(A), where P is a small surface patch around p, A is the small direction set, and σ(A) is its solid angle. By the projected area formula, areaωi(P)=|nωi|area(P). Thus the incoming flux is approximated by radiance_in(p,ωi)|nωi|area(P)σ(A). Dividing by area(P) gives the contribution per unit surface area, radiance_in(p,ωi)|nωi|σ(A). Thus, for small direction sets A near ωi, irradiancep(A)radiance_in(p,ωi)|nωi|σ(A). Therefore, along any shrinking sequence Akωi for which the density limit exists, limkirradiancep(Ak)σ(Ak)=radiance_in(p,ωi)|nωi|. Equivalently, if B is a small direction set near ωi, then irradiancep(B)=radiance_in(p,ωi)|nωi|σ(B)+r(B), where the error r(B) is smaller than linear in solid angle: r(B)σ(B)0 as B shrinks to ωi.

This is the same logic as a one-variable derivative. When a derivative exists, the function has a best linear approximation and the error divided by the input size tends to 0. Here the input size is the solid angle σ(B), and the linear term is radiance_in(p,ωi)|nωi|σ(B). This is why, later, a small direction set Bj with representative direction ηj contributes approximately radiance_in(p,ηj)|nηj|σ(Bj) to irradiance.

Radiance Functions

Incident Radiance
The incident radiance radiance_in(p,ω) is the radiance arriving at a surface point p from direction ω.

For example, sunlight arriving at a point on a wall from the direction of the sun contributes to radiance_in(p,ω) for that incoming direction.

Rendering Scene
A rendering scene is the collection of surfaces, light sources, and material scattering functions used to determine the radiance transported through the scene.
No-Hit Sentinel
The no-hit sentinel, denoted , is a special value used to record that a ray did not intersect any surface in a scene. It is not a point of 3.
Raycast Function
Given a rendering scene S, the raycast function raycastS:3×𝕊23{} sends a point p3 and a direction ω𝕊2 to the first surface point hit by the ray starting at p and traveling in direction ω. If the ray hits no surface in S, then raycastS(p,ω)=.
Incident Radiance from Raycast
Let S be a rendering scene, let p3, let ω𝕊2, and suppose p=raycastS(p,ω). If radiance is transported without absorption or emission along the open segment from p to p, then radiance_in(p,ω)=radiance_out(p,ω).
The value raycastS(p,ω)=p says that the ray starting at p in direction ω first meets the scene at p. Thus light arriving at p from direction ω is the same bundle of light that left p in direction ω. Since there is no absorption or emission along the segment between the two points, radiance is unchanged during this straight-line transport. Therefore radiance_in(p,ω)=radiance_out(p,ω).

Another way to read the same statement is with path notation. If p and p are consecutive points on a light path, then the direction pp is the same direction as ω, and the opposite direction pp is ω. So the same transport identity can be read as radiance_in(p,pp)=radiance_out(p,pp).

Exitant Radiance
The exitant radiance radiance_out(p,ω) is the radiance leaving a surface point p in direction ω.

For example, light reflected from a painted wall toward a camera contributes to radiance_out(p,ω) for the direction from the wall to the camera.

Surface Interaction

Hemisphere of Directions
Let p be a point on a surface S with surface normal n(p). The positive hemisphere of directions at p is Hp+:={ω𝕊2:n(p)ω>0}. The opposite hemisphere is Hp:={ω𝕊2:n(p)ω<0}.
BRDF
The bidirectional reflectance distribution function, abbreviated BRDF, describes how much incoming radiance from one direction is reflected into another direction at a surface point. For a surface S, write brdf:{(p,ωi,ωo):pS, ωi,ωoHp+ or ωi,ωoHp}[0,). The value brdf(p,ωi,ωo) describes reflected scattering at p when the incoming unit vector ωi𝕊2 and outgoing unit vector ωo𝕊2 lie in the same hemisphere. Informally, brdf is outgoing radiance per incoming irradiance, so its unit is sr1.

For example, an ideal matte white surface has nearly the same value of brdf(p,ωi,ωo) for every outgoing direction ωo, while a shiny surface has a value of brdf(p,ωi,ωo) that is much larger near the mirror-reflection direction.

Lambertian BRDF
A Lambertian BRDF with reflectance ρ[0,1] is a BRDF whose value is constant over incoming and outgoing directions on the same side of the surface: brdf(p,ωi,ωo)=ρπ. The number ρ is the fraction of incident surface power density reflected by the surface.
BTDF
The bidirectional transmittance distribution function, abbreviated BTDF, describes how much incoming radiance from one side of a surface is transmitted into an outgoing direction on the other side. For a surface S, write btdf:{(p,ωi,ωo):pS, ωiHp+, ωoHp or ωiHp, ωoHp+}[0,). The value btdf(p,ωi,ωo) describes transmitted scattering at p when the incoming unit direction ωi and outgoing unit direction ωo lie in opposite hemispheres.

The difference from a BRDF is which side of the surface contains the outgoing light. A BRDF describes reflection: the incoming and outgoing directions lie on the same side of the surface. A BTDF describes transmission: the incoming light passes through the surface and leaves on the opposite side.

For example, a clear glass pane has a BTDF that is concentrated around directions determined by refraction.

BSDF
The bidirectional scattering distribution function, abbreviated BSDF, combines the BRDF and BTDF. For a surface S, write bsdf:S×𝕊2×𝕊2[0,). Away from tangent directions, it is the piecewise function bsdf(p,ωi,ωo)={brdf(p,ωi,ωo),ωi,ωoHp+ or ωi,ωoHp,btdf(p,ωi,ωo),ωiHp+, ωoHp or ωiHp, ωoHp+. Thus bsdf(p,ωi,ωo) describes surface scattering at pS from the incoming unit direction ωi to the outgoing unit direction ωo, whether the light is reflected or transmitted.

The codomain [0,) does not mean that a BSDF value is a fraction of light, and it does not mean that bsdf1. A BSDF value is a conversion density from incoming irradiance, measured in Wm2, to outgoing radiance, measured in Wm2sr1. Therefore the raw output of bsdf is measured in outgoing radianceincoming irradiance=Wm2sr1Wm2=sr1. Thus, by the linear approximation coming from irradiance density, if a small direction set Bj has representative incoming direction ηj and solid angle σj, then radiance_in(p,ηj)|nηj|σj is an approximate incoming irradiance contribution, not a radiant flux. Multiplying by bsdf(p,ηj,ωo) gives the corresponding outgoing radiance contribution in direction ωo. A BSDF can be larger than 1 at a particular pair of directions when scattering is concentrated into a small set of outgoing directions; the energy-conserving condition is an integral condition over outgoing directions, not a pointwise bound.

For example, a pane of slightly tinted glass can have a BSDF with a reflected part for mirror-like glare on the front surface and a transmitted part for light that passes through the glass with some absorption. Geometrically, after fixing the surface normal, the BRDF describes scattering into the same hemisphere of directions as reflection, the BTDF describes scattering into the opposite hemisphere, and the BSDF describes both hemispheres together.

Reflected Radiance
Reflected radiance is the part of the exitant radiance at a surface point that comes from incident light scattering at the surface rather than from the surface emitting light by itself.
Emitted Radiance
The emitted radiance emitted_radiance(p,ω) is the radiance produced by a surface point p itself and leaving in direction ω.

For example, a glowing screen has nonzero emitted radiance, while a wall lit only by another lamp has zero emitted radiance and only reflected radiance.

Reflection Equation
The reflection equation is the local bookkeeping rule for outgoing radiance caused by emission and reflection from incoming directions on the same side of the surface: radiance_out(p,ωo)=emitted_radiance(p,ωo)+Ω+brdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dωi. Here radiance_out is exitant radiance, radiance_in is incident radiance, emitted_radiance is emitted radiance, brdf is a BRDF, n is the surface normal, and Ω+ is the hemisphere of directions above the surface.

The factor |nωi| converts incoming radiance from a direction into its contribution per unit surface area through projected area.

Energy-Conserving BSDF
A BSDF is energy-conserving if, for every surface point p and incoming direction ωi, 𝕊2bsdf(p,ωi,ωo)|nωo|dωo1, where n is the surface normal at p. The integral is the total fraction of incoming irradiance from ωi that is scattered into all outgoing directions. The inequality says that the surface may absorb energy, but it does not scatter out more energy than arrived from that incoming direction.
Scattered Radiance
Suppose the local BSDF scattering approximation is being used. Let p be a surface point with surface normal n, let ωo𝕊2 be an outgoing direction, and let A𝕊2 be a measurable incoming direction set. Suppose the function ωibsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi| is measurable and integrable on A with respect to solid angle measure. The scattered radiance from A into ωo is scattered_radiance(p,ωo,A):=Absdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dσ(ωi). This is the part of the exitant radiance leaving p in direction ωo that comes from incident light arriving from directions in A and scattering at p.

The integral in the definition is a Lebesgue integral with respect to the solid angle measure σ. If g(ωi)=bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|, then formally Agdσ is obtained from the supremum of lower Lebesgue sums. For a finite measurable partition 𝒫=(B1,,Bm) of A, the lower sum with respect to the solid angle measure is L(g,𝒫,σ)=j=1mσ(Bj)infBjg. When the pieces Bj are small and g changes little on each piece, this lower sum is close to the representative-direction sum j=1mσ(Bj)g(ηj), where ηjBj. Expanding the definition of g, this is j=1mσ(Bj)bsdf(p,ηj,ωo)radiance_in(p,ηj)|nηj|. The factor radiance_in(p,ηj)|nηj|σ(Bj) is the approximate irradiance contribution from Bj, by the linear approximation coming from irradiance density. Multiplying by bsdf(p,ηj,ωo) converts that incoming irradiance contribution into an outgoing scattered radiance contribution in direction ωo. The integral is the rigorous version of taking all of those direction pieces at once.

Local Linear BSDF Scattering Model
The local linear BSDF scattering model is a rendering approximation that assumes the exitant radiance at each surface point p and outgoing direction ωo is modeled using two local contributions:
  1. emitted radiance emitted_radiance(p,ωo), produced at p itself, and
  2. scattered radiance from incident light arriving at p.
It also assumes the scattered contribution is linear and additive over incoming direction sets. With these assumptions, radiance_out(p,ωo)=emitted_radiance(p,ωo)+scattered_radiance(p,ωo,𝕊2).
BSDF Scattering Equation
Suppose the local linear BSDF scattering model is used for a surface, and suppose scattered radiance is defined for A=𝕊2. Then the exitant radiance in direction ωo is radiance_out(p,ωo)=emitted_radiance(p,ωo)+𝕊2bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dσ(ωi). If one is only describing the scattered outgoing radiance, or if emitted_radiance(p,ωo)=0, this reduces to the fundamental scattering equation radiance_out(p,ωo)=𝕊2bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dσ(ωi).
By the assumptions in the local linear BSDF scattering model, radiance leaving p in direction ωo is modeled as an emitted part plus a scattered part: radiance_out(p,ωo)=emitted_radiance(p,ωo)+scattered_radiance(p,ωo,𝕊2). Applying the definition of scattered radiance with A=𝕊2 gives scattered_radiance(p,ωo,𝕊2)=𝕊2bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dσ(ωi). Substituting this expression for the scattered part gives the BSDF scattering equation.
Raycast Form of the BSDF Scattering Equation
Let S be a rendering scene, let p be a surface point with surface normal n, and let ωo𝕊2 be an outgoing direction. Suppose the local linear BSDF scattering model is used at p, and suppose that for almost every incoming direction ωi𝕊2, pi=raycastS(p,ωi), with straight-line radiance transport from pi to p. Then radiance_out(p,ωo)=emitted_radiance(p,ωo)+𝕊2bsdf(p,ωi,ωo)radiance_out(raycastS(p,ωi),ωi)|nωi|dσ(ωi).
The BSDF scattering equation gives radiance_out(p,ωo)=emitted_radiance(p,ωo)+𝕊2bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi|dσ(ωi). For almost every ωi, write pi=raycastS(p,ωi). By incident radiance from raycast, radiance_in(p,ωi)=radiance_out(pi,ωi). Substituting this expression into the integral gives the raycast form.

In path language, this says that the outgoing radiance at p in direction ωo is emitted radiance at p, plus the scattered contribution from all possible previous path vertices. For each incoming direction ωi, the raycast finds the previous surface point pi, and the incoming radiance at p is the outgoing radiance from pi back toward p.

Point-to-Point Direction
If p,q3 and pq, then ωpq:=qpqp is the unit direction from p toward q.
Visibility Between Surface Points
Let S be a rendering scene, and let p,q be surface points in S. The visibility factor VS(p,q) is 1 when the open line segment from p to q intersects no blocking surface in S, and is 0 otherwise.
Point-to-Point Exitant Radiance
Let S be a rendering scene, and let p,q be distinct surface points. The exitant radiance from p to q is radiance_out(pq):={radiance_out(p,ωpq),VS(p,q)=1,0,VS(p,q)=0.
Three-Point BSDF
Let pi,p,po be distinct surface points. The three-point BSDF at p, from pi through p toward po, is bsdf(pippo):=bsdf(p,ωppi,ωppo). The incoming direction at p is the direction from p toward the previous point pi, and the outgoing direction at p is the direction from p toward the next point po.
Geometric Coupling
Let S be a rendering scene, and let p,q be distinct surface points with surface normals n(p) and n(q). The geometric coupling between p and q is geometric_couplingS(p,q):=VS(p,q)|n(p)ωpq||n(q)ωqp|pq2.

The factor geometric_couplingS(p,q) packages three things that otherwise appear separately: whether p and q can see each other, the projected-area cosine at p, and the solid-angle-to-surface-area conversion at q. This is useful when evaluating the transport equation by sampling surface points instead of sampling directions.

Radial Surface Patch from a Point
Let p3, and let Q be a surface patch not containing p. We say that Q is radial from p if every half-line starting at p intersects Q in at most one point. Equivalently, for every ω𝕊2, there is at most one r>0 such that p+rωQ.

Intuitively, a radial surface patch from p is like a patch of the unit sphere around p, except the radius is allowed to vary smoothly with direction. One way to picture it is Q={p+ρ(ω)ω:ωA}, where A𝕊2 is a direction set and ρ:A>0 gives one distance from p for each direction. A genuine subset of the sphere centered at p is the special case ρ(ω)=1. A filled disk containing whole radial line segments from p is not radial from p, because one direction would correspond to many points of the patch.

Direction Map is Injective on a Radial Patch
Let p3, and let Q be a radial surface patch from p. The direction map g:Q𝕊2,g(q)=ωpq is injective.
Suppose q1,q2Q and g(q1)=g(q2)=ω. By the definition of point-to-point direction, q1=p+q1pω,q2=p+q2pω. Since pQ, both q1p and q2p are positive. Thus both q1 and q2 lie on the same half-line {p+rω:r>0}. Because Q is radial from p, that half-line intersects Q in at most one point. Therefore q1=q2, so g is injective.
Surface Patches are Locally Coordinate Images
Let Q be a smooth surface patch on a surface M3. For each ordinary point q0Q, there is a smaller patch Q0Q containing q0 and a coordinate system x:U3,U2, such that x(U)=Q0.
By the definition of surface, the smooth pieces of M are two-dimensional manifolds in Euclidean space. By the definition of coordinate system on a manifold, every point of such a smooth piece has a neighborhood of the form x(U)=MO, where O3 is open and U2 is open. Restricting O if necessary so that MOQ, set Q0=MO. Then x(U)=Q0.
Derivative of the Normalization Map
Let N:3{0}𝕊2,N(z)=zz. If z3{0}, ω=N(z), and v3, then DN(z)(v)=1z(v(vω)ω)=1zprojω(v).
Here DN(z) is the derivative of N at z. It is a linear transformation 33, and DN(z)(v) means that this linear transformation is applied to the vector v.

Define the length function

L(z)=z. First compute DL(z)(v). Define the squared-length function S:3,S(z)=L(z)2=zz. By the derivative of squared norm exercise, for v3, DS(z)(v)=2zv. Now define the one-variable square function m:,m(t)=t2. Since S(z)=L(z)2, this means S=mL. Therefore, by the chain rule, DS(z)(v)=Dm(L(z))(DL(z)(v)). The one-variable derivative of m(t)=t2 at L(z) is the linear map s2L(z)s. Hence DS(z)(v)=2L(z)DL(z)(v). Combining this with the earlier value DS(z)(v)=2zv gives 2zv=2L(z)DL(z)(v). Because z0, L(z)=z>0, so 2L(z)0. Dividing both sides by 2L(z) gives DL(z)(v)=zvz. Now define Q:3×({0})3,Q(y,t)=yt, and P:3{0}3×({0}),P(z)=(z,L(z)). Then N=QP. By the derivative of the identity function, DP(z)(v)=(v,DL(z)(v)). Therefore the chain rule and the derivative of the vector scalar division map give DN(z)(v)=DQ(P(z))(DP(z)(v))=DQ(z,L(z))(v,DL(z)(v))=1L(z)vDL(z)(v)L(z)2z. Substitute the formula for DL(z)(v): DN(z)(v)=1zvzvz3z. Since ω=z/z, we have z=zω and zv=z(ωv). Thus zvz3z=z(ωv)z3zω=(ωv)ωz. Therefore DN(z)(v)=1z(v(ωv)ω). Since ωv=vω, and by the definition of orthogonal projection onto ω, projω(v)=v(vω)ω, the desired formula follows.
Surface Area to Solid Angle Change of Variables
Let p3, let Q be a smooth radial surface patch from p, let AQ be the surface area measure on Q, let n:Q𝕊2 assign a unit surface normal n(q) to each point qQ, and let g:Q𝕊2,g(q)=ωpq be the direction map. If F:g(Q) is integrable, then g(Q)F(ω)dσ(ω)=QF(ωpq)|n(q)ωqp|pq2dAQ(q). The notation dAQ(q) means integration with respect to the surface area measure AQ; it is not evaluation of an A-function at q.
By direction map is injective on a radial patch, g is one-to-one on Q. By surface patches are locally coordinate images, it is enough to do the calculation on a smaller patch described by one coordinate system and then add the pieces.

So let x:UQ be a coordinate system, with U2. For each uU, define

q(u)=x(u),r(u)=q(u)p,ω(u)=ωpq(u). Thus the coordinate expression of the direction map is g(x(u))=x(u)px(u)p=ω(u). Fix uU. The direction map is the composition of the translation qqp with the normalization map N(z)=z/z. For a tangent vector vTq(u)Q, apply the derivative of the normalization map with z=q(u)p,z=r(u),N(z)=ω(u). Since the derivative of qqp sends v to v, this gives Dg(q(u))(v)=1r(u)(v(vω(u))ω(u))=1r(u)projω(u)(v). Let x1=xu1(u),x2=xu2(u). Then the two coordinate tangent vectors on 𝕊2 induced by gx are Dg(q(u))(x1)=1r(u)projω(u)(x1),Dg(q(u))(x2)=1r(u)projω(u)(x2). By the surface area density cross product formula, the surface-area density of g(Q) in the coordinates gx is Dg(q(u))(x1)×Dg(q(u))(x2)=1r(u)2projω(u)(x1)×projω(u)(x2). The projected vectors lie in ω(u), so their cross product is parallel to ω(u). Therefore, using norm equals absolute dot product with a parallel unit vector and the oriented projected area identity, projω(u)(x1)×projω(u)(x2)=|(x1×x2)ω(u)|. Since n is the chosen unit normal field on Q, the vector x1×x2 is parallel to n(q(u)). Hence |(x1×x2)ω(u)|=|n(q(u))ω(u)|x1×x2. Because ωq(u)p=ωpq(u)=ω(u), this becomes Dg(q(u))(x1)×Dg(q(u))(x2)=|n(q(u))ωq(u)p|pq(u)2x1×x2. Now express the integral with coordinates on the sphere. Let y:V𝕊2 be a coordinate system on the sphere with y(V)=g(Q), and define h=y1gx:UV, so that y(h(u))=g(x(u)). The map h is a coordinate expression of the direction map. The absolute Jacobian determinant |det[Dh(u)]E|, together with the sphere area density from y, is exactly |n(x(u))ωx(u)p|px(u)2x1×x2. Since σ is the solid angle measure, which is surface area measure on 𝕊2, the sphere-coordinate expression of the left side is g(Q)F(ω)dσ(ω)=VF(y(v))ρy(v)dλ(v), where ρy is the surface area density of the sphere in the coordinates y. Applying change of variables for Lebesgue integrals to h:UV gives g(Q)F(ω)dσ(ω)=UF(g(x(u)))|n(x(u))ωx(u)p|px(u)2x1×x2du. By the definition of surface area measure and the surface area density cross product formula, the measure AQ has local density dAQ(q(u))=x1×x2du. Therefore the local integral is QF(ωpq)|n(q)ωqp|pq2dAQ(q). For a patch covered by several coordinate systems, apply the same argument on each piece and add the resulting integrals.
Surface Form of the BSDF Scattering Equation
Let S be a rendering scene, let ΣS be the union of the scene's surfaces, and let p,poΣS be distinct surface points. Suppose the raycast form of the BSDF scattering equation applies at p. Then the point-to-point exitant radiance satisfies radiance_out(ppo)=emitted_radiance(p,ωppo)+ΣSbsdf(qppo)radiance_out(qp)geometric_couplingS(p,q)dAΣS(q).
Apply the BSDF scattering equation with outgoing direction ωppo: radiance_out(p,ωppo)=emitted_radiance(p,ωppo)+𝕊2bsdf(p,ωi,ωppo)radiance_in(p,ωi)|n(p)ωi|dσ(ωi). For a visible surface point q, the corresponding incoming direction at p is ωi=ωpq. By incident radiance from raycast, radiance_in(p,ωpq)=radiance_out(qp). On each smooth visible patch QΣS, apply surface area to solid angle change of variables to the direction map g(q)=ωpq. The determinant calculation in that proposition gives the Jacobian factor dσ(ωpq)=|n(q)ωqp|pq2dAQ(q). Directions that do not hit a surface contribute nothing to the surface integral, and blocked point pairs are recorded by the visibility factor VS(p,q). Substituting the radiance identity and the change-of-variables factor into the direction integral gives ΣSbsdf(qppo)radiance_out(qp)VS(p,q)|n(p)ωpq||n(q)ωqp|pq2dAΣS(q). The factor multiplying the BSDF and radiance is exactly geometric_couplingS(p,q), so the claimed surface form follows.

The direction form suggests sampling directions ωi and then raycasting to find q. The surface form suggests sampling points q on scene surfaces and then using geometric_couplingS(p,q) to account for visibility, orientation, and distance. Both equations describe the same local light transport; they organize the computation differently.

Analytic LTE Solution for an Emitting Lambertian Sphere
Consider the interior surface of a sphere. Suppose every point on the sphere has the same Lambertian BRDF with reflectance ρ, where 0ρ<1, and suppose every point emits the same constant emitted radiance emitted_radiance(p,ω)=E0 in every direction. Then the solution of the BSDF scattering equation is constant over all surface points and directions, and its value is radiance_out(p,ω)=E01ρ.
By the rotational symmetry of the sphere interior and the constant material and emission assumptions, the outgoing radiance has the same value at every surface point and direction. Write this constant value as L. The corresponding incident radiance is also L, because every incoming ray last left another point on the same sphere with the same outgoing radiance. Using the BSDF scattering equation on the inward hemisphere gives L=E0+Hp+ρπL|nωi|dσ(ωi). The hemisphere cosine integral is π. Indeed, choosing coordinates so that n=(0,0,1), write ωi in spherical coordinates with polar angle θ[0,π/2] and azimuthal angle φ[0,2π]. Then |nωi|=cosθ and dσ(ωi)=sinθdθdφ, so Hp+|nωi|dσ(ωi)=02π0π/2cosθsinθdθdφ=π. Therefore the scattering equation reduces to L=E0+ρL. Solving gives L=E01ρ. The same result appears by successive substitution. From L=E0+ρL, L=E0+ρ(E0+ρL)=E0+ρE0+ρ2L. Repeating this N times gives L=j=0NρjE0+ρN+1L. Since 0ρ<1, the remainder ρN+1L tends to 0, and the geometric series converges to L=j=0ρjE0=E01ρ.

The successive-substitution series above is a Neumann series. In rendering language, the first term is radiance emitted directly by the surface, the next term is light that has scattered once after emission, the next has scattered twice, and so on. Direct illumination methods keep only the first scattering event from light sources; path tracing estimates the longer sequence by randomly sampling paths.

Energy-Conserving BSDF Does Not Amplify Incident Energy
Suppose that bsdf is an energy-conserving BSDF and emitted_radiance(p,ωo)=0. Then the scattered part of the BSDF scattering equation does not send out more total surface power density than the incoming radiance delivers to the surface.
The outgoing surface power density due to scattering is obtained by integrating outgoing radiance against the projected-area factor: 𝕊2radiance_out(p,ωo)|nωo|dωo. Since emitted_radiance(p,ωo)=0, substitute the scattered part of the BSDF scattering equation: 𝕊2𝕊2bsdf(p,ωi,ωo)radiance_in(p,ωi)|nωi||nωo|dωidωo. Reordering the integrations gives 𝕊2radiance_in(p,ωi)|nωi|(𝕊2bsdf(p,ωi,ωo)|nωo|dωo)dωi. By the energy-conserving BSDF condition, the parenthesized integral is at most 1. Therefore the outgoing scattered power density is at most 𝕊2radiance_in(p,ωi)|nωi|dωi, which is the incoming surface power density. Thus the scattering term redistributes or absorbs incident energy; it does not create extra energy.
BSSRDF
The bidirectional surface scattering reflectance distribution function, abbreviated BSSRDF, generalizes the BRDF by allowing light to enter a surface at one point and leave at another point. It depends on an incident surface point pi, an incoming direction ωi, an exitant surface point po, and an outgoing direction ωo.

For example, wax and skin often need a BSSRDF because light can enter at one nearby point, scatter under the surface, and exit elsewhere.

Spectral Quantities

Wavelength
A wavelength is the spatial period of a wave. For light, wavelength is commonly denoted by λ.
Visible Wavelength Range
The visible wavelength range is the range of wavelengths that humans can usually see. A common approximate range is 380nm to 780nm.
Photon
A photon is a discrete packet of light or other electromagnetic radiation. A photon with wavelength λ has energy E=hcλ, where h is the Planck constant and c is the speed of light.
Spectral Distribution
A spectral distribution is a function whose input is a wavelength and whose output is the amount of some physical quantity at that wavelength.
Spectral Radiometric Quantity
A spectral radiometric quantity describes how a radiometric quantity is distributed over wavelength. Spectral radiance Lλ satisfies L=limmaxiΔλi0iLλ(λi)Δλi, whenever this limit exists over the wavelengths being considered.
Spectral Power Distribution
A spectral power distribution is a spectral distribution for radiant flux.

For example, two lamps may emit the same total radiant flux but have different spectral power distributions if one emits more short-wavelength light and the other emits more long-wavelength light.

Sampled Spectrum
A sampled spectrum represents a spectral distribution by storing values at finitely many wavelength samples or wavelength intervals.

For example, instead of storing a value for every wavelength from 380nm to 780nm, a renderer might store values at a fixed set of sample wavelengths and interpolate or average between them.

Spectral Rendering
Spectral rendering is rendering that transports and scatters light using spectral distributions rather than only three color coordinates.

Light Emission

Light Source
A light source is an object or region with nonzero emitted radiance.
Area Light
An area light is a light source whose emission is distributed over a surface region.

For example, a glowing rectangular panel is naturally modeled as an area light.

Blackbody Emitter
A blackbody emitter is an idealized light source whose spectral power distribution is determined only by its temperature.

For example, as the temperature increases, an ideal blackbody shifts from a reddish appearance toward white and then bluish-white.

Standard Illuminant
A standard illuminant is a specified spectral power distribution used as a reference light source.

For example, a daylight standard illuminant gives a repeatable reference spectrum for describing colors under daylight-like illumination.

Color

Color
Color is the perceptual response associated with a light spectrum and an observer. It is not the same thing as a spectral distribution: different spectra can produce the same perceived color for a given observer.
Color Matching Functions
Color matching functions are three weighting functions over visible wavelengths used to convert a spectral distribution into three color coordinates.
XYZ Color
An XYZ color is a triple (X,Y,Z) obtained from a spectral distribution using color matching functions. The Y coordinate is chosen to correspond to perceived brightness under the standard observer model.
RGB Color
An RGB color is a triple (R,G,B) of coordinates relative to chosen red, green, and blue primaries. RGB is a coordinate representation of color, not a complete description of the physical light spectrum.
RGB Color Space
An RGB color space specifies how RGB triples correspond to colors. It includes the red, green, and blue primaries, a white point, and a transfer rule for encoding numerical channel values.

For example, the same triple (1,0,0) means the red primary of whichever RGB color space is being used, so changing the color space can change the actual displayed color.

Metamer
Two spectral distributions are metamers for an observer if they produce the same perceived color for that observer.

Exercises

Photons from a Monochromatic Lightbulb
How many photons would a 50W lightbulb emit in 1s, assuming all of its emitted light has the single wavelength λ=600nm?
A 50W bulb emits 50J of radiant energy in 1s, using the joule and second. A photon with wavelength λ has energy Eγ=hcλ. Therefore the number of photons is N=50JEγ=50λhc. Using λ=600×109m, h=6.62607015×1034Js, and c=299792458ms1, N1.51×1020. Thus the bulb emits about 1.51×1020 photons in 1s.
Irradiance from a Unit-Radius Disk
Compute the irradiance at a point due to a unit-radius disk h units above the point along the surface normal. Assume the disk has constant outgoing radiance L=10Wm2sr1. Do the computation once as an integral over solid angle and once as an integral over area.
Let θ be the angle from the receiver normal. The disk subtends a cone with maximum angle θ0, where tanθ0=1h,sin2θ0=1h2+1. Using solid angle, irradiance=Lcosθdω=L02π0θ0cosθsinθdθdφ=Lπsin2θ0=10πh2+1.

Now compute over disk area. Let ρ be the radial coordinate on the disk. The distance from the point to a disk point is r=h2+ρ2, and the cosine factor at both the receiver and the disk is h/r. Since dω=hr3dA, the irradiance is irradiance=L02π01h2(h2+ρ2)2ρdρdφ=10πh2+1. The two computations agree.

Irradiance from a Unit Square
Compute the irradiance at a point due to a square with side length 1, centered 1 unit above the point in the direction of its surface normal, with constant outgoing radiance L=10Wm2sr1.
Place the receiving point at the origin and the square in the plane z=1, with 12x12,12y12. For a point (x,y,1) on the square, the squared distance to the receiver is r2=1+x2+y2. The receiver cosine and emitter cosine are both 1/r. For a small area element represented by dxdy, the corresponding irradiance contribution is approximated by L1r1r3dA=L1(1+x2+y2)2dxdy. Therefore irradiance=101/21/21/21/21(1+x2+y2)2dydx7.5227468845Wm2.