Importance Sampling PDFs (VNDF, Spherical Caps) - 飞书云文档
$$D_{GGX}=\frac{\alpha^2}{\pi((\alpha^2-1)(n\cdot h)^2+1)^2} \quad \text{and} \quad\int D_{GGX}(h)(n\cdot h)dh=1$$
$$PDF_{GGX}(h)=D_{GGX}(h)(n\cdot h)=\frac{\alpha^2(n\cdot h)}{\pi((\alpha^2-1)(n\cdot h)^2+1)^2}$$
$h$ 是向量,我们用极坐标表示它:
$$PDF_{GGX}(\theta,\phi)=D_{GGX}(\theta,\phi)\cos{\phi}=\frac{\alpha^2\cos{\phi}}{\pi((\alpha^2-1)\cos^2{\phi}+1)^2}$$
紧接着求出两个变量的联合概率分布:
$$F_{GGX}(\theta,\phi)=\int_0^{\phi}\int_0^{\theta}\frac{\alpha^2\cos{\phi}\sin{\phi}}{\pi((\alpha^2-1)\cos^2{\phi}+1)^2},d\theta d\phi=\int_0^{\phi}\frac{\theta\alpha^2\cos{\phi}\sin{\phi}}{\pi((\alpha^2-1)\cos^2{\phi}+1)^2},d\phi$$
$$F_{GGX}(\theta,\phi)=\int_0^{\phi}\frac{-\theta\alpha^2\cos{\phi}}{\pi((\alpha^2-1)\cos^2{\phi}+1)^2},d\cos{\phi}$$
令$\cos{\phi}=t$,则:
$$F_{GGX}(\theta,\phi)=\int_1^{\cos{\phi}}\frac{-\theta\alpha^2t}{\pi((\alpha^2-1)t^2+1)^2},dt$$
$$=\int_1^{\cos{\phi}}\frac{-\theta\alpha^2}{2\pi (\alpha^2-1)((\alpha^2-1)t^2+1)^2},d((\alpha^2-1)t^2+1)$$
再令$(\alpha^2-1)t^2+1=a$,则:
$$F_{GGX}(\theta,\phi)=\int_{\alpha^2}^{(\alpha^2-1)\cos^2{\phi}+1}\frac{-\theta\alpha^2}{2\pi (\alpha^2-1)a^2}da=\int_{\alpha^2}^{(\alpha^2-1)\cos^2{\phi}+1}\frac{\theta\alpha^2}{2\pi (\alpha^2-1)}d\frac{1}{a}$$
那么
$$F_{GGX}(\theta,\phi)=\frac{\theta\alpha^2}{2\pi (\alpha^2-1)}\frac{1}{a}\Big\vert_{\alpha^2}^{(\alpha^2-1)\cos^2{\phi}+1}=\frac{\theta(1-\cos^2{\phi})}{2\pi((\alpha^2-1)\cos^2{\phi}+1)}$$
边缘概率分布为:
$$
\begin{cases}
F_{GGX}(\theta)=\frac{\theta}{2\pi}
\\
F_{GGX}(\phi)=\frac{1-\cos^2{\phi}}{(\alpha^2-1)\cos^2{\phi}+1}
\end{cases}
$$
现令$\zeta_1=F_{GGX}(\theta)$和$\zeta_2=F_{GGX}(\phi)$,则:
$$
\begin{cases}
\theta=2\pi\zeta_1
\\
\phi=\arccos{\sqrt{{\frac{1-\zeta_2}{\zeta_2(\alpha^2-1)+1}}}}
\end{cases}
$$
将半程向量的 PDF 转化成入射光线方向的 PDF(几何法)
找到两个方位角微分$dh$和$dl$的关系$\frac{dh}{dl}$:
考虑以观察向量为轴的极坐标系,记$(v\cdot h)=(h\cdot l)=\cos{\theta}$,则:
$$
\begin{cases}
dh=\sin{\theta}d\phi d\theta
\\
dl=\sin{2\theta}d\phi d2\theta
\end{cases}
$$
[!note] recall
方位角微分的计算方法:$dw=\sin{\phi}d\theta d\phi$
所以
$$\frac{dh}{dl}=\frac{\sin{\theta}d\phi d\theta}{4\sin{\theta}\cos{\theta}d\phi d\theta}=\frac{1}{4\cos{\theta}}$$
所以,根据$\int D_{GGX}(h)(n\cdot h)dh=1$可知:
$$\int D_{GGX}(h)(n\cdot h)dh=\int D_{GGX}(h)(n\cdot h)\frac{dh}{dl}dl=\int \frac{D_{GGX}(h)(n\cdot h)}{4\cos{\theta}}dl=1$$
因此,入射光线$l$的 PDF 为:
$$PDF_{GGX}(l)=\frac{D_{GGX}(h)(n\cdot h)}{4\cos{\theta}}\quad \text{and} \quad \cos{\theta}=(v\cdot h)=(h\cdot l)$$
因此,使用蒙特卡洛重要性采样计算渲染方程:
$$L_o(v)=\int_{l\in \Omega}BRDF\cdot L_i(l)\cdot(n\cdot l)dl=\frac{1}{N}\sum_{l\in PDF_{GGX}(l)}\frac{BRDF\cdot L_i(l)\cdot(n\cdot l)}{PDF_{GGX}(l)}$$
$$=\frac{1}{N}\sum_{l\in PDF_{GGX}(l)}\frac{BRDF\cdot L_i(l)\cdot(n\cdot l)}{D_{GGX}(h)(n\cdot h)}4\cos{\theta}=\frac{1}{N}\sum_{l\in PDF_{GGX}(l)}\frac{F\cdot G\cdot L_i(l)(v\cdot h)}{(n\cdot v)(n\cdot h)}$$
将半程向量的 PDF 转化成入射光线方向的 PDF(雅可比矩阵法)
$\omega_i$ 是入射光线,$\omega_m$是微表面法向量(半程向量 h),$\Omega$是法线上半球面。
可见几何法线分布$D_{\omega_i}(\omega_m)$满足:
$$\int_{\Omega}D_{\omega_i}(\omega_m)d\omega_m=1$$
其中:
$$D_{\omega_i}(\omega_m)=\frac{G_1(\omega_i,\omega_m) \vert \omega_i\cdot \omega_m \vert D(\omega_m)}{\vert \omega_i \cdot \omega_g \vert}$$
考虑入射光线$\omega_i$和半程向量$\omega_m$之间的关系:
再以观察向量为轴的极坐标系中,两个向量的偏航角相等,而入射光线$\omega_i$的俯仰角是半程向量$\omega_m$的两倍:
$$
\begin{cases}
d\omega_m=\sin{\phi}d\theta d\phi
\\
d\omega_i=\sin{v}dudv
\end{cases}
\quad
\text{and}
\quad
\begin{cases}
\theta=u
\\
\phi=\frac{1}{2}v
\end{cases}
$$
计算雅可比矩阵 J 的绝对值:
$$
\vert J\vert=\frac{\partial(\theta,\phi)}{\partial(u,v)}=
\Big\vert\begin{matrix}
\frac{\partial \theta}{\partial u}&\frac{\partial \theta}{\partial v}
\\
\frac{\partial \phi}{\partial u}&\frac{\partial \phi}{\partial v}
\end{matrix}\Big\vert=
\Big\vert\begin{matrix}
1&0\0&\frac{1}{2}
\end{matrix}\Big\vert
=\frac{1}{2}
$$
那么
$$\frac{d\omega_m}{d\omega_i}=\frac{\sin{\phi}d\theta d\phi}{\sin{v}dudv}=\frac{\sin{\phi}}{\sin{2\phi}}\cdot\frac{\partial(\theta,\phi)}{\partial(u,v)}=\frac{\sin{\phi}}{2\sin{\phi}\cos{\phi}}\cdot \vert J\vert=\frac{1}{4\cos{\phi}}$$
因此
$$\int_{\Omega}D_{\omega_i}(\omega_m)d\omega_m=\int_{\Omega}D_{\omega_i}(\omega_m)\frac{d\omega_m}{d\omega_i}d\omega_i=\int_{\Omega}\frac{D_{\omega_i}(\omega_m)}{4\cos{\phi}}d\omega_i=1$$
因此
$$PDF(\omega_i)=\frac{D_{\omega_i}(\omega_m)}{4\cos{\phi}}\quad \text{and} \quad \cos{\phi}=(\omega_v\cdot \omega_m)=(\omega_m\cdot \omega_i)$$