Light Transport and Stochastic Q-Processes

Light Transport and Stochastic Q-Processes

image

This is the first in a series of tutorials about the mathematical underpinnings of light transport. This tutorial covers, among other things:

  • The derivation of the radiative transport differential equation.
  • The corresponding Lagrangian stochastic QQ-process.
  • Scattering statistics and mean-free path.

This tutorial is aimed at students at the graduate level or advanced undergraduates.

The Photon

Let's first start by thinking about the simplest object involved in light transfer: the photon. If you're interested in what a photon actually is - an excitation of a quantum field - you'll have to learn quantum field theory, but for our purposes, imagine that a photon is just a discrete particle of light travelling through space. A photon has a few elementary properties, including:

  • Position: At any given time tt, every photon has a position XtR3X_t \in \mathbb{R}^3.

  • Direction: At any given time tt, every photon has a direction ωtS2\omega_t \in \mathbb{S}^2 (here S2R3\mathbb{S}^2 \subset \mathbb{R}^3 denotes the 2-sphere of points unit 2\ell_2 distance away from the origin). While direction may vary, the speed of a photon in free space is always constant as c3108m/sc \approx 3 \cdot 10^8 \, m/s.

  • Wavelength: A photon has a specific wavelength λ>0\lambda>0. The electromagnetic field carrying a photon usually has a periodicity and λ\lambda is the length of a single period.

  • Frequency: A photon has a frequency ν\nu. The frequency measures the time periodicity at which the underlying electromagnetic field - locally, the oscillations of electromagnetic field returns to its original configuration every 1/ν1/\nu seconds. The frequency and wavelength are related by the speed of the photon,

λν=c.\begin{equation} \lambda \nu = c \,. \end{equation}
  • Energy: A photon carries with it a certain amount of energy. This energy comes from the light source that generate the photon via spontaneous or stimulated emission. The Planck-Einstein relation postulates that the energy a photon carries is directly porpotional to its frequency. The constant of porportionality is called the Planck constant hh:
E=hν.\begin{equation} E = h \nu \,. \end{equation}
  • Momentum: As postulated by de Broglie, the momentum pp of a particle is inversely porpotional to its wavelength, i.e.,
p=hν=Ec.\begin{equation} p = \frac{h}{\nu} = \frac{E}{c} \,. \end{equation}

For our purposes the important parts of a photon are really only its position, direction, and wavelength. In the coming sections, we will therefore focus on (Xt,ωt,λ)(X_t,\omega_t,\lambda).

Photon Motion in Free Space

Photons don't just sit there, they tend to move around. In fact, they move around at the speed of light (which is pretty fast). Therefore, if we're describing the motion of a single photon (Xt,ωt,λ)(X_t,\omega_t,\lambda) in free space, it should satisfy the basic equation of motion:

dXtdt=cωt.\begin{equation} \frac{d X_t}{dt} = c \, \omega_t \,. \end{equation}

In linear optics, photons tend not to interact with each other, so if we have a collection of photons (Xt(i),ωt(i),λ(i))(X_t^{(i)},\omega_t^{(i)},\lambda^{(i)}), the equations are motions are not coupled in any way:

dXt(i)dt=cωt(i).\begin{equation} \frac{dX_t^{(i)}}{dt} = c \, \omega_t^{(i)} \,. \end{equation}

Note that to complete the equations, we need to specify the directions ωt(i)\omega_t^{(i)}. In free space, once a photon has been released, it will retain its direction and speed as long as it doesn't hit anything. Therefore, the free space equations for photon motion are exceedingly simple, as the directions ωt(i)\omega_t^{(i)} are all constants ω(i)\omega^{(i)}:

dXt(i)dt=cω(i).\begin{equation} \frac{dX_t^{(i)}}{dt} = c \, \omega^{(i)} \,. \end{equation}

Starting from initial positions X0(i)X_0^{(i)}, these ODEs are very easy to solve:

Xt(i)=X0(i)+cω(i)t.\begin{equation} X_t^{(i)} = X_0^{(i)} + c ω^{(i)} t. \end{equation}

Note that this analysis is in terms of individual non-interacting particles Xt(i)X_t^{(i)}. This is usually refered to as a Lagrangian formulation. Most of the time however, the motion of individual particles is not the end goal. Instead, we are often interested the distribution of particles ρt\rho_t. This distribution ρt(x,ω)\rho_t(x, \omega) is specified as a function of both a position in space xR3x \in \mathbb{R}^3 and a direction ωS2\omega \in \mathbb{S}^2. Note that the evolution of ρt(x,ω)\rho_t(x,ω) is not tied to the viewpoint of the individual particles, but rather to the viewpoint of individual locations in free space. This distribution-based view is referred to as an Eulerian formulation.

How does one go from the Lagrangian formulation to an Eulerian formulation? One way is via a technique known as characteristic analysis. Note that the equations of motion are completely reversible - if I specify the position and orientation of a photon at time tt, you can calculate backwards the position and orientation at time 00. Therefore, all particles follow non-intersecting characteristic paths (Xt,ωt)(X_t, \omega_t) through the phase space R3×S2\mathbb{R}^3 \times \mathbb{S}^2. This means that the distribution of particles along these paths should remain constant over time. This gives the equation:

dρt(Xt,ωt)dt=0.\begin{equation} \frac{d\rho_t(X_t, \omega_t)}{dt} = 0\,. \end{equation}

Using the chain rule,

dρt(Xt,ωt)dt=ρt(Xt,ωt)dXtdt+ρtωt(Xt,ωt)dωtdt+ρt(Xt,ωt)t=0.\begin{equation} \frac{d\rho_t(X_t, \omega_t)}{dt} = \nabla \rho_t(X_t, \omega_t) \cdot \frac{dX_t}{dt} + \frac{\partial \rho_t}{\partial \omega_t} (X_t, \omega_t) \cdot \frac{d\omega_t}{dt} + \frac{\partial \rho_t(X_t, \omega_t)}{\partial t} = 0 \,. \end{equation}

In the particular case of free space, ωt\omega_t is constant, therefore, using the equation (6) for dXt/dtdX_t/dt from above, we get

cωρt(x,ω)+ρt(x,ω)t=0.\begin{equation} c \omega \cdot \nabla \rho_t(x, \omega) + \frac{\partial \rho_t(x, \omega)}{\partial t} = 0\,. \end{equation}

Rearranged this gives

ρt(x,ω)t=cωρt(x,ω).\begin{equation} \frac{\partial \rho_t(x, \omega)}{\partial t} = - c \omega \cdot \nabla \rho_t(x, \omega) \,. \end{equation}

If we fix ω\omega, you might recognize this as the transport equation from partial differential equations.

Scattering in Homogenous Media

scattering

Of course, the above equations are very simplistic. They simply say that photons move in straight lines when in free space. Though this is useful, often-times photons are moving through a medium where they constantly collide with other particles and are scattered and absorbed throughout. The different ways materials scatter light are wholy reasonable for the different ways they look. For example, in the above figure, light enters the lion and then scatters around inside it until it exists and hits the viewer's eye. This gives the impression of soft lighting and partial translucency (see how the tail lets some light through with its red-orange highlights). So, if we are going to talk about light transport with an eye towards rendering things like the statue above, we are going to need to discuss how light changes direction.

Unfortunately, this process is not deterministic. Or at least, it is not deterministic from the macroscopic viewpoint. Two light particles can hit the same surface and be reflected in completely different directions. We model this by saying that a light particle hitting a material (or fluid) at location xx in direction ωi\omega_i has a certain probability of being redirected in direction ωoωo. It also has a certain probability of being absorbed. In the most general case, we want to think about rates rather than concrete probabilities. When a photon enters a scattering medium like the one pictured above, the photon will move a certain distance until it impacts something in the medium that redirects it. You should think of the contents of the medium as being random, and hence the distance travelled before a photon impacts an obstacle will be random as well. The average distance travelled before a photon hits an obstacle (i.e. scatters) is called the mean free path. The higher the mean free path, the more the photon can travel through the medium unobstructed and therefore the clearer the medium.

Let us take this information and think about the parameters of a particle (Xt,ωt)(X_t,\omega_t) travels through a homogenous scattering medium. Occasionally ωt\omega_t will suddenly change randomly when the particle hits something. But how do we characterize this randomness?

We can model this scattering process by using a continuous QQ-process on the sphere S2\mathbb{S}^2. Recall that a QQ-process WtW_t on S2\mathbb{S}^2 is a continous time random process whose value changes abruptly at random times T1,T2,...,Tn,...T_1,T_2,...,T_n,.... In particular, a QQ-process on S2\mathbb{S}^2 is characterized by a generator operator L\mathcal{L} which satisfies

L(ωi,ωo)=σ(ωi,ωo)μs(ωi)δ(ωi,ωo),\begin{equation} \mathcal{L}(\omega_i, \omega_o)= \sigma(\omega_i, \omega_o) - \mu_s (\omega_i) \delta(\omega_i, \omega_o) \,, \end{equation}

where

μs(ω)=S2σ(ω,ωo)dΩ(ωo).\begin{equation} \mu_s(\omega) = \int_{\mathbb{S}^2} \sigma(\omega, \omega_o) \, d\Omega(\omega_o) \,. \end{equation}

Here dΩd\Omega denotes the surface area measure on S2\mathbb{S}^2. We'll talk more about L\mathcal{L} later, but for now, let's focus on σ(ωi,ωo)\sigma(\omega_i,\omega_o). You should think of the function σ(ωi,ωo)\sigma(\omega_i,\omega_o) as the probability transition rates to go from a state xyx \rightarrow y. That is, WtW_t satisfies:

P(Wt+dtdΩ(ωo)Wt=ωi)=σ(ωi,ωo)dΩdt+o(dt).\begin{equation} \mathbb{P}(W_t + dt \in d\Omega(ω_o) \mid W_t = \omega_i) = \sigma(\omega_i, \omega_o) \, d\Omega \, dt + o(dt)\,. \end{equation}

In other words, after a very small amount of time dtdt, WtW_t has a probability of about σ(ωi,ωo)dΩdt\sigma(\omega_i,\omega_o) \, d\Omega dt to jump to a small solid angle dΩd\Omega around ωo\omega_o. This function σ(ωi,ωo)\sigma(\omega_i,\omega_o) is called the phase function and determines the rate at which a photon travelling in direction ωi\omega_i is redirected to direction ωo\omega_o after it hits an obstacle.

How do we go from a Lagrangian formulation of a QQ-process to an Eulerian formulation? Well let us ignore the position of our particles (the medium is homogenous, so position doesn't really matter when it comes to rotation) and simply examine the probability distribution of the directions ω(i)\omega^{(i)} of our particles. We write the distribution of directions of our particles as ρt(ω)\rho_t(\omega). You should think of this function as a representing the fact that there are ρt(ω)\rho_t(\omega) photons anywhere in the medium that are in direction ω\omega.

Let us compute how the density ρt(ω)\rho_t(\omega) changes over time at a given orientation ω\omega. From the definition of the QQ-process above, we have that

ρt+dt(ω)=ρt(ω)+[S2ρt(ωi)σ(ωi,ω)dΩ(ωi)]dt[S2ρt(ω)σ(ω,ωo)dΩ(ωo)]dt+o(dt).\begin{equation} \begin{split} \rho_{t+dt}(\omega) &= \rho_t(\omega) + \left[\int_{\mathbb{S}^2} \rho_t(\omega_i)\sigma(\omega_i, \omega)\, d\Omega(\omega_i)\right]dt \\ &\quad - \left[\int_{\mathbb{S}^2} \rho_t(\omega) \sigma(\omega, \omega_o) \, d\Omega(ω_o)\right] \, dt + o(dt) \,. \end{split} \end{equation}

This expression is saying that the number of particles in direction ω\omega at time t+dtt+dt is the number of particles in direction ω\omega at time tt, plus the number of particles that are redirected from any other direction ωi\omega_i into direction ω\omega over the time dtdt, minus the number of particles that are redirected from direction ω\omega to any other direction ωo\omega_o over the time dtdt. Note that we can take ρt(ω)\rho_t(\omega) out of the integral above to get

ρt+dt(ω)=ρt(ω)+[S2ρt(ωi)σ(ωi,ω)dΩ(ωi)]dtμs(ω)ρt(ω)dt+o(dt).\begin{equation} \rho_{t+dt}(\omega)=\rho_t(\omega)+\left[\int_{\mathbb{S}^2}\rho_t(\omega_i)\sigma(\omega_i,\omega)\, d\Omega(\omega_i)\right] \, dt - \mu_s(\omega)\rho_t(\omega)\, dt+o(dt) \,. \end{equation}

Rearranging the above and taking dt0dt\rightarrow0 gives us

ρtt(ω)=S2ρt(ωi)σ(ωi,ω)dΩ(ωi)μs(ω)ρt(ω).\begin{equation} \frac{\partial \rho_t}{\partial t}(\omega)= \int_{\mathbb{S}^2}\rho_t(\omega_i) \, \sigma(\omega_i,\omega)\, d \Omega(\omega_i) - \mu_s(\omega) \rho_t(\omega) \,. \end{equation}

This often appreviated by writing

ρtt=Lρt,\begin{equation} \frac{\partial\rho_t}{\partial t} = \mathcal{L}^*\rho_t \,, \end{equation}

where L\mathcal{L}^* is the adjoint of L\mathcal{L} (i.e., L(ωi,ωo)=L(ωo,ωi)\mathcal{L}^*(\omega_i, \omega_o) = \mathcal{L}(\omega_o, \omega_i)). This equation is called the forward equation for a QQ-process. Here, one says that the operator L\mathcal{L}^* generates the time evolution of ρt\rho_t. This is very similar to deriving the forward equations for a random walk by using Ito's lemma.

The Statistics of Scattering Events

The next question one might ask is for the actual statistics of the scattering times T1,T2,...,TnT_1, T_2, ..., T_n. These are relatively straightforward. Note that the QQ-process is Markovian and hence the intervals ΔTi=TiTi1\Delta T_i =T_i-T_{i-1} are independent and identically distributed. This makes sense, because once the particle has scattered, it doesn't care about anything other than its current position and orientation. In other words, the path a particle has taken to get to a certain point is irrelevant, it is only the current state that matters. To derive statistics for the ΔTi\Delta T_i, we need to consider the distribution ρt(0)(ω)\rho_t^{(0)}(\omega). ρt(0)(ω)\rho_t^{(0)}(\omega) is defined as the distribution of particles that have not yet scattered. At any given time the probability that a particle scatters in the next dtdt seconds is given by:

P(Particle moving in direction ω scatters in next dt seconds)=[S2σ(ω,ωo)dΩ(ωo)]dt+o(dt)=μs(ω)dt+o(dt).\begin{equation} \begin{split} &\mathbb{P}(\text{Particle moving in direction } \omega \text{ scatters in next dt seconds}) \\ &\quad =\left[\int_{\mathbb{S}^2} \sigma(\omega,\omega_o)\, d\Omega(\omega_o)\right]\, dt + o(dt) = \mu_s(\omega)\, dt+o(dt)\,. \end{split} \end{equation}

Let N[t,s]N[t,s] be the number of scattering events between times tt and ss. We can determine the distribution of the scattering time TT as follows (we simply write TT here for a random variable with the distribution of ΔTi\Delta T_i):

P(Tdt(t))=P(N[0,t]=0 and N[t,t+dt]=1).\begin{equation} \mathbb{P}(T \in dt(t)) = \mathbb{P}(N[0,t]=0 \text{ and } N[t,t+dt]=1) \,. \end{equation}

For disjoint intervals AA and BB, a property of the QQ-process is that N(A)N(A) and N(B)N(B) are independent. Therefore, we have that

P(Tdt(t))=P(N[0,t]=0)P(N[t,t+dt]=1)=P(N[t,t+dt]=1)n=0t/dt1P(N[ndt,(n+1)dt]=0).\begin{equation} \begin{split} \mathbb{P}(T \in dt(t)) &=\mathbb{P}(N[0,t]=0) \mathbb{P}(N[t,t+dt]=1) \\ &=\mathbb{P}(N[t,t+dt]=1)\prod_{n=0}^{t/dt-1}\mathbb{P}(N[ndt, (n+1)dt]=0) \,. \end{split} \end{equation}

We now use the fact that P(N[t,t+dt]=1)=μs(ω)dt+o(dt)\mathbb{P}(N[t,t+dt]=1)=\mu_s(\omega)dt+o(dt) and P(N[t,t+dt]=0)=1μs(ω)dt+o(dt)\mathbb{P}(N[t,t+dt]=0)=1-\mu_s(\omega)dt+o(dt) to get:

P(Tdt(t))=(μs(ω)dt)(1μs(ω)dt)t/dt.\begin{equation} \mathbb{P}(T \in dt(t))=(\mu_s(\omega)dt)(1-\mu_s(\omega)dt)^{t/dt}. \end{equation}

Recall that

limn(11n)n=e.\begin{equation} \lim_{⁡n\rightarrow \infty}\left(1-\frac{1}{n}\right)^n = e\,. \end{equation}

Therefore, we get

P(Tdt(t))=μs(ω)eμs(ω)t.\begin{equation} \mathbb{P}(T \in dt(t))= \mu_s(\omega)e^{-\mu_s(\omega)t} \, . \end{equation}

This is the exponential distribution with rate λ=μs(ω)\lambda=\mu_s(\omega), hence the times between scattering events have distribution

TExp(μs(ω)).\begin{equation} T \sim \text{Exp}(\mu_s(\omega)) \,. \end{equation}

A nice outcome of this fact is that we can easily compute the mean scattering time to be:

E[T]=1/μs(ω).\begin{equation} \mathbb{E}[T]=1/\mu_s(\omega) \,. \end{equation}

The mean free path is therefore

=E[cT]=c/μs(ω).\begin{equation} \ell=\mathbb{E}[cT]=c/\mu_s(\omega)\,. \end{equation}

If the medium is isotropic (i.e., the function σ(ωi,ωo)\sigma(\omega_i, \omega_o) is rotationally invariant), then μs(ω)\mu_s(\omega) does not depend on ω\omega and this can just be written as

=c/μs.\begin{equation} \ell=c/\mu_s \,. \end{equation}

Full Eulerian Formulation

One can obtain a full Eulerian formulation for the evolution of ρt(x,ω)\rho_t(x,\omega) as follows. Let us consider the number of particles in a set AA with direction ω\omega, i.e.,

Aρt(x,ω)dx.\begin{equation} \int_A \rho_t(x,\omega) \, dx \,. \end{equation}

The change in the number of particles in AA moving in direction ω\omega is given by the particle flux through the boundary A\partial A as well as the particles inside AA that scatter either from some direction ωi\omega_i to ω\omega or scatter from direction ω\omega to some direction ωo\omega_o. We can write this as

Aρt+dt(x,ω)dx=Aρt(x,ω)dxdtAρt(x,ω)(cωdn)+dtALωρt(x,ω)dx.\begin{equation} \begin{split} \int_A \rho_{t+dt}(x,\omega)\, dx&=\int_A \rho_t(x,\omega) \,dx \\ &\quad-dt \int_{\partial A} \rho_t(x,\omega)(c\omega \cdot dn) + dt \int_{A} \mathcal{L}_\omega^∗ \rho_t(x,\omega)\, dx\,. \end{split} \end{equation}

The cdtAρt(x,ω)(ωdn)cdt \int_{\partial A} \rho_t(x,\omega) (\omega \cdot dn) represents the sum of all particles that move out of the region AA over a time interval dtdt and the dtALωρt(x,ω)dxdtdt \int_{A} \mathcal{L}_\omega^∗ \rho_t(x,\omega)\, dx\, dt represents the change in particle number from scattering inside the region AA (as we derived two sections ago). Stokes' Theorem can be applied to the term over A\partial A to get

Aρt+dt(x,ω)dx=Aρt(x,ω)dxcdtAωxρt(x,ω)dx+dtALωρt(x,ω)dx.\begin{equation} \begin{split} \int_A \rho_{t+dt}(x,\omega) \, dx &= \int_A \rho_t(x,\omega) \, dx \\ &\quad -cdt \int_{A} \omega \cdot \nabla_x \rho_t(x,\omega)\, dx+dt\int_{A}\mathcal{L}_\omega^∗ \rho_t(x,\omega)\,dx\,. \end{split} \end{equation}

Since this is true for any AA, it must be the case that

ρt+dt(x,ω)=ρt(x,ω)cωxrhot(x,ω)dt+Lωρt(x,ω)dt.\begin{equation} \rho_{t+dt}(x,\omega)=ρ_t(x,\omega)-c\omega \cdot \nabla_x \\rho_t(x,\omega)\, dt +\mathcal{L}_ω^∗ \rho_t(x,\omega) \, dt \,. \end{equation}

Now rearranging and letting dt0dt \rightarrow 0,

ρtt(x,ω)=cωxρt(x,ω)+Lωρt(x,ω).\begin{equation} \frac{\partial \rho_t}{\partial t}(x,\omega) = -c\omega \cdot \nabla_x \rho_t(x,\omega)+ \mathcal{L}_\omega^∗ \rho_t(x,\omega) \, . \end{equation}

Voila. This is the Eulerian formulation of light transport in a homogenous medium with phase function σ(ωi,ωo)\sigma(\omega_i, \omega_o). Writing it out in full gives:

ρtt(x,ω)=cωxρt(x,ω)+S2ρt(x,ω)σ(ω,ω)dΩ(ω)μs(ω)ρt(x,ω).\begin{equation} \frac{\partial \rho_t}{\partial t} (x,\omega)=-c\omega\cdot\nabla_x \rho_t(x,\omega) + \int_{\mathbb{S}^2} \rho_t(x, \omega') \sigma(\omega',\omega) \, d\Omega(\omega') - \mu_s(\omega) \rho_t(x,\omega) \,. \end{equation}

For comparison, the Langrangian form of these equations is

dXtdt=cWt,\begin{equation} \frac{dX_t}{dt} = cW_t \,, \end{equation}

where WtW_t is a QQ-process on S2\mathbb{S}^2 with generator L\mathcal{L}.

Isotropic Scattering

The simplest example of a scattering medium is one that is fully isotropic, i.e., regardless of the incomming and outgoing directions ωi\omega_i and ωo\omega_o, the rate of scattering is the same. That is,

σ(ωi,ωo)=σ.\begin{equation} \sigma(\omega_i, \omega_o) = \sigma \,. \end{equation}

Usually this is referred to as isotropic scattering. In this case, the scattering coefficient μs\mu_s does not depend on ω\omega and is easily calculated to be

μs=4πσ.\begin{equation} \mu_s = 4 \pi \sigma \,. \end{equation}

The equations in the previous section now take on the form

ρtt(x,ω)=cωxρt(x,ω)+μsρˉt(x)μsρt(x,ω).\begin{equation} \frac{\partial \rho_t}{\partial t}(x,\omega)=-c\omega\cdot\nabla_x \rho_t(x,\omega)+ \mu_s \bar{\rho}_t(x) - \mu_s \rho_t(x,\omega) \,. \end{equation}

Here ρˉt\bar{\rho}_t is shorthand for the average photon density at xx over all directions ω\omega,

ρˉt(x)=14πS2ρt(x,ω)dΩ(ω).\begin{equation} \bar{\rho}_t(x)=\frac{1}{4\pi} \int_{\mathbb{S}^2} \rho_t(x,\omega) \, d\Omega(\omega) \,. \end{equation}

Scattering in Heterogenous and Absorbing Media

In the previous examples, we assumed that the scattering medium was the same everywhere, i.e., that the phase function σ(ωi,ωo)\sigma(\omega_i,\omega_o) did not depend on xx. In this section, we see what happens when the phase function σ(ωi,ωo)\sigma(\omega_i,\omega_o) does depend on xx. This is relatively common, many objects are not entirely uniform. For example, your hand scatters light, but your hand is not uniformly made of the same material. There's skin, muscle, bone, blood, etc. And each of these materials have different properties. How do we model this? Well, now the statistics of the direction ωt\omega_t of a particle will depend heavily on that particle's position and path.

If this is the case, then WtW_t is now a QQ-process whose phase function σ(ωi,ωo)\sigma(\omega_i,\omega_o) changes depending on the position XtXt of the particle. We will write the new phase function as σ(x;ωi,ωo)\sigma(x;\omega_i,\omega_o). This means that the generator of the process now depends explicitly on the value of xx. Hence, we have

L(x,ωi,ωo)=σ(x,ωi,ωo)μs(x,ωi)δ(ωi,ωo).\begin{equation} \mathcal{L}(x,\omega_i,\omega_o)=\sigma(x,\omega_i,\omega_o)-\mu_s(x,\omega_i) \, \delta(\omega_i,\omega_o) \,. \end{equation}

where once again,

μs(x,ω)=S2σ(x,ω,ωo)dΩ(ωo).\begin{equation} \mu_s(x,\omega)=\int_{\mathbb{S}^2} \sigma(x,\omega,\omega_o) \, d\Omega(\omega_o) \,. \end{equation}

In addition to this, we also give a particle a certain probability of being absorbed at any point in time. This probability is quantified by the absorption coefficient μa(x,ω)\mu_a(x,\omega) which is defined in a similar way to the phase function:

P(Particle with direction ω at x is absorbed over a period dt)=μa(x,ω)dt+o(dt)\begin{equation} \begin{split} &\mathbb{P}(\text{Particle with direction }\omega\text{ at }x\text{ is absorbed over a period } dt) \\ &\quad = \mu_a(x,\omega)\, dt+o(dt) \end{split} \end{equation}

What this means is that the QQ-process WtW_t now has a chance of jump to a dead state from which it can never return. Therefore, the number of particles in a region AA now changes over a small period dtdt according to:

Aρt+dt(x,ω)dx=Aρt(x,ω)dx[Aρt(x,ω)(cωdn)]dt+[AS2ρt(x,ωi)σ(x,ωi,ω)dΩ(ωi)dx]dt[AS2ρt(x,ω)σ(x,ω,ωo)dΩ(ωo)dx]dt[Aμa(x,ω)ρt(x,ω)dx]dt+o(dt).\begin{equation} \begin{split} \int_A \rho_{t+dt}(x,\omega) \, dx &= \int_A \rho_t(x,\omega) \, dx - \left[\int_{\partial A} \rho_t(x,\omega) (c\omega\cdot dn)\right]\, dt \\ &\quad +\left[\int_A \int_{\mathbb{S}^2} \rho_t(x,\omega_i)\sigma(x,\omega_i,\omega)\, d\Omega(\omega_i)\, dx\right] \, dt \\ &\quad -\left[\int_A \int_{\mathbb{S}^2} \rho_t(x,\omega)\sigma(x,\omega,\omega_o)\, d\Omega(\omega_o)\, dx\right]\, dt \\ &\quad - \left[\int_A \mu_a(x,\omega)\rho_t(x,\omega)\, dx\right]\,dt+o(dt)\,. \end{split} \end{equation}

The terms with a dtdt factor represent, in order of appearence:

  1. The net number of particles that leave the region AA.
  2. The number of particles that are scattered in AA from some direction ωi\omega_i to ω\omega.
  3. The number of particles that are scattered in AA from ω\omega to some other direction ωo\omega_o.
  4. The number of particles absorbed in AA.

Repeating the procedure of the previous section will give us:

ρtt(x,ω)=cωxρt(x,ω)+S2ρt(x,ωi)σ(x,ωi,ω)dΩ(ωi)(μs(x,ω)+μa(x,ω))ρt(x,ω).\begin{equation} \begin{split} \frac{\partial \rho_t}{\partial t}(x,\omega) &= -c\omega\cdot\nabla_x \rho_t(x,\omega)+\int_{\mathbb{S}^2} \rho_t(x,\omega_i) \sigma(x,\omega_i,\omega)\, d\Omega(\omega_i) \\ &\quad -(\mu_s(x,\omega)+\mu_a(x,\omega)) \rho_t(x,\omega)\,. \end{split} \end{equation}

Alternatively, we can just write this as:

ρtt=Lx,ωρt,\begin{equation} \frac{\partial \rho_t}{\partial t} = \mathcal{L}_{x,\omega}^∗ \rho_t\,, \end{equation}

Where the generator Lx,ω\mathcal{L}_{x,\omega} of the full joint process (Xt,Wt)(X_t,W_t) is given by:

Lx,ωρ(x,ω)=cωxρt(x,ω)+S2σ(x,ω,ωo)ρt(x,ωo)dΩ(ωo)(μs(x,ω)+μa(x,ω))ρt(x,ω).\begin{equation} \begin{split} \mathcal{L}_{x,\omega} \rho(x,\omega) &= c\omega\cdot\nabla_x \rho_t(x,\omega) + \int_{\mathbb{S}^2} \sigma(x,\omega,\omega_o) \rho_t(x,\omega_o)\, d\Omega(\omega_o) \\ &\quad -(\mu_s(x,\omega)+\mu_a(x,\omega)) \,\rho_t(x,\omega) \,. \end{split} \end{equation}

We have therefore derived the full radiative transport equation.

Statistics of Scattering Events

Let us assume for now that the scattering medium is non-absorbing, i.e., that μa=0\mu_a=0 everywhere. Just like in the homogenous case, every particle will have a series of scattering times T1,T2,...,Tn,...T_1,T_2,...,T_n,.... The difference now is that these scattering times depend explicitly on the path the photon is travelling along.

We can calculate the statistics of scattering events by using the same trick as last time. Let N[t,s]N[t,s] be the number of scattering events in the time interval [t,s][t,s]. Suppose that the particle has direction ωω and is traveling along the ray Xt(0)=X0+cωtX_t(0)=X_0+c\omega t. The we have that:

P(Tdt(t))=P(N[t,t+dt]=1)n=0t/dt1P(N[ndt,(n+1)dt]=0)=μs(Xt(0),ω)n=0t/dt1(1μs(Xndt)dt).\begin{equation} \begin{split} \mathbb{P}(T \in dt(t)) &= \mathbb{P}(N[t,t+dt]=1) \prod_{n=0}^{t/dt-1} \mathbb{P}(N[n \, dt,(n+1)dt]=0) \\ &= \mu_s(X_t(0),\omega)\prod_{n=0}^{t/dt-1}(1-\mu_s(X_{n\,dt})dt) \,. \end{split} \end{equation}

When x1x \ll 1, we know that 1xexp(x)1-x \sim \exp⁡(-x). Therefore,

1μs(Xndt)dtexp(μs(Xndt)dt).\begin{equation} 1- \mu_s(X_{n \, dt})\,dt \sim \exp(-\mu_s(X_{n\,dt})dt) \,. \end{equation}

We then have:

P(Tdt(t))=μs(Xt(0),ω)exp(n=0t/dt1μs(Xndt(0),ω)dt)dt.\begin{equation} \mathbb{P}(T \in dt(t)) = \mu_s(X_t^{(0)},\omega) \exp\left(\sum_{n=0}^{t/dt-1} \mu_s(X_{n\,dt}^{(0)},\omega) \, dt\right)\, dt \,. \end{equation}

As dt0dt \rightarrow 0 this converges to

P(Tdt(t))=μs(Xt(0),ω)exp(0tμs(Xs(0)ω)ds)dt.\begin{equation} \mathbb{P}(T \in dt(t))= \mu_s(X_t^{(0)},\omega)\exp\left(-\int_0^t\mu_s(X_s^{(0)}\omega) \, ds\right) \, dt \,. \end{equation}

Therefore, if one wishes to simulate a photon scattering in a heterogenous medium, one might sample scattering times from the above distribution.

Statistics of Absorption Events

The above section only covers scattering events. However, a photon may experience either a scattering or an absorption event while it is traversing through a medium. Recall, that photons travelling in direction ω\omega at a position xx are absorbed at a rate μa(ω)\mu_a(\omega). Combining this with scattering events, at every time step of dtdt, a photon has a probability μa(ω)dt\mu_a(\omega)\, dt of being absorbed and a μs(ω)dt\mu_s(\omega)\, dt probability of being scattered. Let AA be the event where the photon is absorbed. Therefore, one can follow the derivation of the previous section to obtain:

P(Tdt(t),A)=μa(Xt(0),ω)exp(0t(μs(Xs(0),ω)+μa(Xs(0),ω))ds)dtP(Tdt(t),Aˉ)=μs(Xt(0),ω)exp(0t(μs(Xs(0),ω)+μa(Xs(0),ω))ds)dt\begin{equation} \begin{split} \mathbb{P}(T \in dt(t), A) &= \mu_a(X_t^{(0)}, \omega)\exp\left(-\int_0^t (\mu_s(X_s^{(0)}, \omega)+\mu_a(X_s^{(0)}, \omega))\, ds\right) \, dt \\ \mathbb{P}(T \in dt(t), \bar{A}) &= \mu_s(X_t^{(0)},\omega) \exp\left( -\int_0^t (\mu_s (X_s^{(0)}, \omega) + \mu_a(X_s^{(0)}, \omega)) \, ds \right) \, dt \end{split} \end{equation}

Therefore, the probability that the photon is absorbed is given by:

P(A)=0μa(Xt(0),ω)exp(0t(μs(Xs(0),ω)+μa(Xs(0),ω))ds)dt.\begin{equation} \mathbb{P}(A)=\int_0^\infty \mu_a(X_t^{(0)}, \omega) \exp\left(-\int_0^t(\mu_s(X_s^{(0)},\omega)+\mu_a(X_s^{(0)},\omega)) \, ds \right) \, dt\,. \end{equation}

Similarly, the probability that the photon is scattered is given by:

P(Aˉ)=0μs(Xt(0),ω)exp(0t(μs(Xs(0),ω)+μa(Xs(0),ω))ds)dt\begin{equation} \mathbb{P}(\bar{A}) = \int_0^\infty \mu_s(X_t^{(0)}, \omega) \exp\left(-\int_0^t(\mu_s(X_s^{(0)}, \omega) + \mu_a(X_s^{(0)},\omega)) \, ds\right) \, dt \end{equation}

If the media is homogenous, that is if μs(x,ω)=μs(ω)\mu_s(x,\omega)=\mu_s(\omega) and μa(x,ω)=μa(ω)\mu_a(x,\omega)= \mu_a(\omega), this reduces to:

P(A)=μa(ω)μa(ω)+μs(ω).P(Aˉ)=μs(ω)μa(ω)+μs(ω).\begin{equation} \begin{split} \mathbb{P}(A)&=\frac{\mu_a(\omega)}{\mu_a(\omega)+\mu_s(\omega)} \, . \\ \mathbb{P}(\bar{A})&=\frac{\mu_s(\omega)}{\mu_a(\omega)+\mu_s(\omega)}\,. \end{split} \end{equation}

Emissive Media

light bulb

In addition to absorbing and scattering light, a general medium can also emit photons. To quantify this emission, we introduce an emission rate j(x,ω)j(x,\omega). The quantity of light emitted at xx in direction ω\omega over a short period dtdt is given by

j(x,ω,t)dt.\begin{equation} j(x,\omega,t)dt \,. \end{equation}

Therefore, it is relatively simple to see that we should update the Eulerian equations by adding a j(x,ω)j(x,\omega) term to the right hand side:

ρtt(x,ω)=Lx,ωρt(x,ω)+j(x,ω,t).\begin{equation} \frac{\partial \rho_t}{\partial t}(x,\omega)=\mathcal{L}_{x,\omega}^∗ \rho_t(x,\omega) + j(x,\omega,t) \,. \end{equation}

Or written out in full:

ρtt(x,ω)=cωxρt(x,ω)+S2ρt(x,ωi)σ(x,ωi,ω)dΩ(ωi)(μs(x,ω)+μa(x,ω))ρt(x,ω)+j(x,ω,t).\begin{equation} \begin{split} \frac{\partial \rho_t}{\partial t}(x,\omega)&=-c\omega\cdot \nabla_x \rho_t(x,\omega)+\int_{\mathbb{S}^2} \rho_t(x,\omega_i) \sigma(x,\omega_i,\omega) \, d\Omega(\omega_i) \\ &\qquad -(\mu_s(x,\omega)+\mu_a(x,\omega)) \rho_t(x,\omega)+j(x,\omega,t)\,. \end{split} \end{equation}

Lights are examples of emissive materials.

Steady-State Radiative Transfer

Often times, we aren't interested in the evolution of the distribution ρt(x,ω)\rho_t(x,\omega) over a short time scale, but rather, we're interested in the average distribution over a very long time. Our eyes act like integrators, so if we want to talk about rendering, we care about the time averaged distribution of photons,

ρ(x,ω)=limT1T0Tρt(x,ω).\begin{equation} \rho(x,\omega)= \lim_{T \rightarrow \infty}\frac{1}{T} \int_0^T \rho_t(x,\omega) \,. \end{equation}

This time-averaged distribution should represent a sort of "steady state" of the system when a given j(x,ω,t)j(x,\omega,t) is applied as an input. Computing this also requires time integrating out fluctuations in the emissive term j(x,ω,t)j(x,\omega,t),

jˉ(x,ω)=limT1T0Tj(x,ω,t).\begin{equation} \bar{j}(x,\omega)=\lim_{T\rightarrow\infty}\frac{1}{T}\int_0^T j(x,\omega,t) \,. \end{equation}

At equilibrium, we expect that the distribution of light no longer changes, so an easy way to compute it is to set

ρt=0.\begin{equation} \frac{\partial\rho}{\partial t}= 0 \,. \end{equation}

This can be written out as:

jˉ(x,ω)=cωxρ(x,ω)+S2ρ(x,ωi)σ(x,ωi,ω)dΩ(ωi)+(μs(x,ω)+μa(x,ω))ρ(x,ω).\begin{equation} \begin{split} \bar{j}(x,ω) &= c \omega \cdot \nabla_x \rho(x,\omega) + \int_{\mathbb{S}^2} \rho(x,\omega_i) \sigma(x,\omega_i,\omega)\, d\Omega(\omega_i) \\ & \quad + (\mu_s(x,\omega)+\mu_a(x,\omega)) \rho(x,\omega)\,. \end{split} \end{equation}

These are the elliptic equations for the steady state of a radiative transfer system. Note that the equations are linear in ρ\rho. Therefore, we know that the function ρρ must be linear in jˉ\bar{j} ,. This linearity can be written in terms of a scattering operator S\mathcal{S} that acts on the function jˉ\bar{j}. This function corresponds to applying the Green's function G\mathcal{G} of the elliptic equation above:

ρ(x,ω)=Sjˉ(x,ω)=R3S2G(x,ω,x,ω)jˉ(x,ω)dΩ(ω)dx.\begin{equation} \rho(x, \omega) = \mathcal{S} \bar{j}(x,\omega)= \int_{\mathbb{R}^3} \int_{\mathbb{S}^2} \mathcal{G}(x,\omega,x',\omega') \bar{j}(x', \omega') \, d\Omega(\omega') \, dx' \,. \end{equation}

Steady-State Transfer with Boundary Conditions

Often times we're not interested in scattering on the whole of R3\mathbb{R}^3, but rather on some restricted domain DD. We can easily imagine the following question: given the geometry and makeup of someone's face, suppose we put a flashlight under it and want to know what the face will look like when after the light propagates through it.

From such a problem to be well posed, we need to specify an ingoing light at the boundary. We will denote this as f(x,ω)f(x,\omega) (for "flashlight"). f(x,ω)f(x,\omega) is defined on the boundary xDx \in \partial D for ingoing directions ωn<0\omega \cdot n < 0 . Furthermore, we may have emissive materials inside the domain DD, which we will have to model with the function jˉ(x,ω)\bar{j}(x,\omega) defined on the interior of DD. Therefore, we have

jˉ(x,ω)=cωxρ(x,ω)+S2ρ(x,ωi)σ(x,ωi,ω)dΩ(ωi)+(μs(x,ω)+μa(x,ω))ρ(x,ω),for xint(D).\begin{equation} \begin{split} \bar{j}(x,ω) &= c\omega \cdot \nabla_x \rho(x,\omega)+\int_{\mathbb{S}^2} \rho(x,\omega_i) \sigma(x,\omega_i,\omega) \, d\Omega(\omega_i) \\ &\quad +(\mu_s(x,\omega)+\mu_a(x,\omega))\rho(x,\omega), \qquad \text{for } x \in \text{int}(D)\,. \end{split} \end{equation}

And we have boundary conditions

ρ(x,ω)=f(x,ω),for xD and ωn(x)<0.\begin{equation} \rho(x, \omega) = f(x,\omega)\, , \qquad \text{for } x \in \partial D \text{ and } \omega \cdot n(x)<0 \,. \end{equation}

In the same way as before, the output ρ\rho is linear in the inputs ff and jˉ\bar{j}. It can therefore be written as:

ρ=SDf+Sint(D)jˉ,\begin{equation} \rho=\mathcal{S}_{\partial D} f + \mathcal{S}_{\text{int}(D)} \bar{j} \,, \end{equation}

where SD\mathcal{S}_{\partial D} and Sint(D)\mathcal{S}_{\text{int}(D)} are scattering operators (from boundary D\partial D to DD and interior int(D)\text{int}(D) to DD respectively). They also have corresponding Green's functions:

ρ(x,ω)=Dωn(x)<0GD(x,ω,x,ω)dΩ(ω)dx+DS2Gint(D)(x,ω)dΩ(ω)dx.\begin{equation} \begin{split} \rho(x,\omega)& =\int_{\partial D} \int_{\omega' \cdot n(x)<0} \mathcal{G}_{\partial D}(x,\omega, x', \omega') \, d\Omega(\omega') \, dx' \\ &\quad + \int_{\partial D} \int_{\mathbb{S}^2} \mathcal{G}_{\text{int}(D)} (x,\omega')\, d\Omega(\omega')\,dx'\,. \end{split} \end{equation}

The Green's function GD(x,ω,x,ω)\mathcal{G}_{\partial D}(x,\omega, x', \omega') when the output is restricted to the boundary xDx \in \partial D and ωn(x)<0\omega' \cdot n(x)<0 is called the bidirectional scattering distribution function (BSDF) of the object DD.

Radiant Flux, Irradiance, and Radiance

There are some fundamental quantities that often get tossed around in light transport. It is good to put everything together with standard temonology. Let us go through all the necessary terms one-by-one:

  1. Radiant Flux (across a surface SS): The radiant flux through SS is given by the energy that moves through SS per unit time. Recall that the energy per particle is given by
E=hcλ\begin{equation} E= \frac{h c}{\lambda} \end{equation}

Therefore, for monochromatic light with wavelength λ\lambda, the radiance flux across SS is given by:

Φt=dEdt=hcλS2Sρt(x,ω)(cωdn)dΩ(ω).\begin{equation} \Phi_t= \frac{dE}{dt} = \frac{hc}{\lambda} \int_{\mathbb{S}^2} \int_{S} \rho_t(x,\omega) (c\omega\cdot dn) \, d\Omega(\omega) \,. \end{equation}
  1. Irradiance: The irradiance at a location xx on a surface SS is a measure of the energy recieved/emitted by the surface per unit time per unit area. It is written as:
It(x)=dΦdA=hcλS2ρt(x,ω)(cωn(x))dΩ(ω).\begin{equation} I_t(x)=\frac{d\Phi}{dA} = \frac{hc}{\lambda} \int_{\mathbb{S}^2} \rho_t(x,\omega)(c\omega\cdot n(x)) \, d\Omega(\omega) \,. \end{equation}
  1. Radiance: The radiance at a location xx and in direction ω\omega on a surface is a measure of the energy recieved/emitted by the surface per unit time per unit area per solid angle. It is often written:
Lt(x,ω)=d2ΦdAdΩ=dIdΩ=hcλρt(x,ω)(cωn(x)).\begin{equation} L_t(x,\omega) = \frac{d^2 \Phi}{dA \, d\Omega} = \frac{dI}{d\Omega} = \frac{hc}{\lambda} \rho_t(x,\omega) (c\omega \cdot n(x)) \,. \end{equation}

It is common to write ωn(x)\omega\cdot n(x) as cosθ\cos \theta where θ\theta is the angle between the direction of the photon ω\omega and the normal n(x)n(x) of the surface,

Lt(x,ω)=hc2λρt(x,ω)cosθ.\begin{equation} L_t(x,\omega)=\frac{hc^2}{\lambda} \rho_t(x, \omega) \cos \theta \,. \end{equation}