PBR - Surface Reflection
Last Update:May 18, 2024 am
Bidirectional Reflectance Distribution Function
Given a reflection plane, the irradiance from the incident light at the point $\mathbf{p}$ can be written as
where $d\Omega_i=\sin\theta_i\: d\theta_i\:d\phi_i$. The intuitive understanding of the above formula is that the incident light all over the hemisphere is divided into the incident light from many small cones, in which the irradiance contributed by the small cones in the direction $\boldsymbol{\omega}_i$ is $L_i(\mathbf{p},\boldsymbol{\omega}_i)\cos\theta_i\:d\Omega_i$. The total irradiance $E_i(\mathbf{p})$ from the incident light can be obtained by adding up the irradiance contributed by all the small cones.
The above formula is sometimes written in differential form
If we want to consider the irradiance rate of the light emitted along the direction at the point $\mathbf{p}$, the above idea of dividing and summing still works. Suppose that for every unit of irradiance added by a small cone in the direction , it can contribute more units of irradiance rate to the outgoing light in the direction , then the contribution of the small cone in the direction to is
Adding up the contributions of all the small cones gives the expression of $L_o(\mathbf{p},\boldsymbol{\omega}_o)$ as follows
The above formula can also be written in the corresponding differential form
or equivalently
The function $f_{\mathrm{r}}\left(\mathbf{p}, \boldsymbol{\omega}_o, \boldsymbol{\omega}_i\right)$ derived above is called bidirectional reflectance distribution function, or BRDF for short. The equation derived above
is called reflection equation.
Properties
Physics based BRDF should have the following three properties:
- Nonnegativity: $f_{\mathrm{r}}\left(\mathbf{p}, \boldsymbol{\omega}_o, \boldsymbol{\omega}_i\right)\ge 0$;
- Helmholtz reciprocity: ;
- Conservation of energy:
Calculation
There are three common ways to deal with integral
The first kind of surface integral on the unit hemisphere, which can be parameterized by spherical coordinates
Convert to the integral on luminous surface $A$
where $\theta^\prime$ is the angle between the normal vector at some point on surface $A$ and $-\boldsymbol{\omega}_i$.
Instance: the BRDF applied by UE4
UE4 engine uses the following BRDF
where
In the above formula, $\mathbf{n}$ is the unit normal vector, $\mathbf{l}$ is the unit incident vector, $\mathbf{v}$ is the unit reflection vector, $\mathbf{h}=(\mathbf{l}+\mathbf{v})/\Vert\mathbf{l}+\mathbf{v}\Vert$ is the microplane unit normal vector. Next, we will describe the specific forms of functions $F,D,G$.
Normal Distribution Function $D$
GGX (Trowbridge-Reitz) Distribution
Geometry Function $G$
GGX-Smith correlated joint approximate formula
Fresnel Term $F$
Fresnel-Schlick approximate formula
where $\operatorname{lerp}(a,b,t)=(1-t)a+tb$ is the linear interpolation function.
Copyright Notice: All articles in this blog are licensed under CC BY-SA 4.0 unless declaring additionally.