$$\boxed{f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) = \frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}}$$

An Elementary Expression for Multiple
Scattering in Homogeneous Microflake Media

Jonathan Dupuy
Intel Corporation

Background

Background

Background

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

microsurface
NDF

Background

[Walter et al. 07]
NDF sampler
NDF
microsurface
NDF
✗ energy conserving
✓ analytic

Background

[Walter et al. 07]
NDF sampler
NDF
microsurface
NDF
✗ energy conserving
✓ analytic

Background

[Heitz & d'Eon 14]
VNDF sampler
VNDF
NDF
incident direction
visible / occluded surface
microsurface
NDF
✗ energy conserving
✓ analytic
VNDF
✗ energy conserving
✓ analytic

Background

[Heitz et al. 16]
[Dupuy et al. 16]
Stochastic sampler
VNDF
NDF
incident direction
visible / occluded surface
microsurface
NDF
✗ energy conserving
✓ analytic
VNDF
✗ energy conserving
✓ analytic
random walks
✓ energy conserving
✗ analytic

Contribution

[Dupuy 26]
Elementary expression
VNDF
NDF
incident direction
visible / occluded surface
microsurface
NDF
✗ energy conserving
✓ analytic
VNDF
✗ energy conserving
✓ analytic
random walks
✓ energy conserving
✗ analytic
elementary expression
$$\boxed{f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) = \frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}}$$
✓ energy conserving
✓ analytic

Problem Statement

random walk

Problem Statement

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{t}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{t}$) is exponential
single parameter: NDF

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{t}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{t}$) is exponential
single parameter: NDF

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{t}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{t}$) is exponential
single parameter: NDF

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
single scattering
$$ \underbrace{ \vphantom{\int_{\Delta_1}^\infty p_2(\Delta_2) \, \dd \Delta_2} \int_0^\infty p_1(\Delta_1) }_{ \scriptsize{\text{move down by $\Delta_1$}} } \, \underbrace{ \int_{\Delta_1}^\infty p_2(\Delta_2) \, }_{ \scriptsize{\text{now up by at least $\Delta_1$}} } \textrm{d} \Delta_2 \, \textrm{d} \Delta_1$$
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$
double scattering (two configurations)
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2<0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_2+\kappa_3}$$
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2>0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_3) = \int_{\mathcal S^2} P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \, \Psi(\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \textrm{d}\boldsymbol{\omega}_2$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
exit distribution:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$
double scattering (two configurations)
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2<0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_2+\kappa_3}$$
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2>0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_3) = \int_{\mathcal S^2} P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \, \Psi(\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \textrm{d}\boldsymbol{\omega}_2$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
exit distribution:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$
double scattering (two configurations)
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2<0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_2+\kappa_3}$$
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2>0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_3) = \int_{\mathcal S^2} P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \, \Psi(\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \textrm{d}\boldsymbol{\omega}_2$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
exit distribution:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$
double scattering (two configurations)
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2<0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_2+\kappa_3}$$
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2>0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_3) = \int_{\mathcal S^2} P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \, \Psi(\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \textrm{d}\boldsymbol{\omega}_2$$

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF
escape probability:
exit distribution:
single scattering
$$P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = \frac{\kappa_1}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) = P_1(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2)$$
double scattering (two configurations)
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2<0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_2+\kappa_3}$$
$$P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3)\big|_{z_2>0} = \frac{\kappa_1}{\kappa_1+\kappa_3} \frac{\kappa_2}{\kappa_1+\kappa_2}$$
$$\mathcal R(\boldsymbol{\omega}_1,\boldsymbol{\omega}_3) = \int_{\mathcal S^2} P_2(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \Psi(\boldsymbol{\omega}_1,\boldsymbol{\omega}_2) \, \Psi(\boldsymbol{\omega}_2,\boldsymbol{\omega}_3) \, \textrm{d}\boldsymbol{\omega}_2$$
Higher scattering orders ?

Specular Heightfield Insight

Specular Heightfield Insight

Mirror heightfields reflect rays upwards at each bounce
random walk
$t_3 \boldsymbol{\omega}_3$ cannot happen ($z_3 < z_2$) !
triple scattering (three possible configurations)

Specular Heightfield Insight

random walk
Mirror heightfields reflect rays upwards at each bounce
random walk
$t_3 \boldsymbol{\omega}_3$ cannot happen ($z_3 < z_2$) !
triple scattering (three possible configurations)

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF

Depth Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF

Solution:
$$f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) \big|_D = \sum_{k=1}^\infty f_{r_k}(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o)\big|_D$$

NDF Parameterization

random walk
Problem:
Given random variables $\color{red}{\boldsymbol{\omega}}$ and $\color{red}{\Delta}$, what is the distribution of exit ray direction $\color{red}{\boldsymbol{\omega}_o}$ ?

Given:
pdf($\color{red}{\boldsymbol{\omega}}$) is the phase function $\Psi$
pdf($\color{red}{\Delta}$) is exponential
single parameter: NDF

Solution:
$$f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) \big|_D = \sum_{k=1}^\infty f_{r_k}(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o)\big|_D$$
Closed form:
$$f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) = \frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}$$
$$D:= ?$$
$$D:= D(\boldsymbol{\omega}_m) = \begin{cases} z_m^2 & \textrm{if $z_m > 0$} \\ 0 & \textrm{otherwise}. \end{cases}$$
ChatGPT 5.6:

BRDF Intuitions

$$f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) = \frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}$$
Jacobian

BRDF Intuitions

$$f_r(\boldsymbol{\omega}_i, \boldsymbol{\omega}_o) = \frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}$$
Jacobian
BRDF sampling through radius-dependent pivots Fixed disk samples on the left, three separated radius-dependent chord mappings in the middle, and transformed orange samples on the right. Adjust theta and phi below to change the incident direction.
90° 75°
360° 180°

Validation

Figure 7: Random-walk histograms and the closed-form BRDF for incident angles of 0, 45, and 80 degrees. First row of Figure 8: Closed-form BRDF and random-walk comparisons under directional illumination at 0, 90, 130, and 160 degrees.

Renderings

Diffuse

θ = 0° θ = 90° θ = 130° θ = 160°
Second row of Figure 8: Closed-form BRDF above and diffuse BRDF below, under directional illumination at 0, 90, 130, and 160 degrees.

Renderings

GGX (single-scattering)

θ = 0° θ = 90° θ = 130° θ = 160°
Third row of Figure 8: Closed-form BRDF above and single-scattering GGX BRDF below, under directional illumination at 0, 90, 130, and 160 degrees.

Renderings

GGX (multiscattering)

θ = 0° θ = 90° θ = 130° θ = 160°
Fourth row of Figure 8: Closed-form BRDF above and multiple-scattering GGX BRDF below, under directional illumination at 0, 90, 130, and 160 degrees.

Renderings

$$\frac{1}{\pi}$$
$$\frac{1}{\pi}\frac{z_i + z_o}{1 + \boldsymbol{\omega}_i \cdot \boldsymbol{\omega}_o}$$
$$\frac{F \; G \; D}{4 \; z_i \: z_o}$$
$$\mathbb{E}[\textrm{random walk}]$$
(IBL)
✗ microfacet
✓ analytic
✓ energy-conserving
✓ microfacet
✓ analytic
✓ energy-conserving
✓ microfacet
✓ analytic
✗ energy loss
✓ microfacet
✗ analytic
✓ energy-conserving
✗ dimensionless
✗ dimensionless
✓ roughness parameter
✓ roughness parameter