Annex: The 4 in PBR

This annex to Derivation of Physically Based Rendering derives how \omega_r changes relative to \omega_m for a specular microfacet.

The delta function enforces \pmb{h} = \pmb{m}, so {d\omega_m = d\omega_h}.

To make the problem simpler we can swap what’s changing, that is, for some area on the unit sphere d\omega_r at \pmb{r}, what is the corresponding area d\omega_h at \pmb{h}, keeping \pmb{i} as a constant vector?

We need to transforms the area d\omega_r onto the corresponding area d\omega_h following the definition of the halfway vector:

So our area at d\omega_r needs to be shifted from \pmb{r} to \pmb{i} + \pmb{r}, then rescaled onto the unit sphere to become d\omega_h.

Shifting d\omega_r to \pmb{i}+\pmb{r} doesn’t change the area, but the area no longer lies perpendicular to a sphere, so it needs to be projected onto the sphere with radius |\pmb{i}+\pmb{r}|. d\omega_r’s normal is \pmb{r} and the outer sphere’s normal is \pmb{h} at \pmb{i}+\pmb{r}, so the projected area is dA_{\text{proj}} = (\pmb{r} \cdot \pmb{h}) d\omega_r.

We now need to rescale our area dA from the outer sphere onto the unit sphere. The proportion of dA to the outer sphere’s surface area is equivalent to the proportion of d\omega_h to the unit sphere’s surface area,

So substituting for dA and rearranging

We need to find |\pmb{i}+\pmb{r}|, one method is to note that \pmb{i}+\pmb{r} is parallel to \pmb{h} so

Or equivalently, if \theta is the angle between \pmb{h} and \pmb{r}, then 2\theta is the angle between \pmb{i} and \pmb{r} so

Substituting |\pmb{i}+\pmb{r}|^2,

Last modified 10/09/2023