(论文)[2005-WSCG] Go with the Winners Strategy in Path Tracing
GWTW
- Go with the Winners Strategy in Path Tracing
- WSCG
- 2005
Introduction
- \(L^r\) :the reflected radiance
- \(L^e\):the emission
- \(w=\text{BRDF}\times\cos\):the scattering density
- 论文:minimizes this total computation error and keeps the computational time low.
Previous work
- Russian-roulette、Splitting、Joining
- RR
- albedo:效果并不好
- luminance of the albedo(spectral rendering)
- 例如:先经过红色
(1,0,0)
表面、再经过绿色(0,1,0)
表面,此时没有贡献,但是 albedo 无法识别
- throughput:效果比 fixed 要好
- fixed:场景 albedo 的平均值
- albedo:效果并不好
- window:\(W^{-},W^{+}\)
Random walks
- Random walks with termination, splitting and joining
- 当前信息
- \(W^{l-1}\)
- \(l\) 点的材质信息
Splitting
- \(n_l>1\)
- 假定:采样 pdf
近似是零方差
- \(\dfrac{w_l}{p_l}=a_l=\text{const},\forall w_l\)
- 此时方差如下:这里的 \(D^2\) 是方差的记号
Random termination
- \(n_l<1\)
- 假设不发射随机光线就能得到一个估计值(不一定无偏),使用 \(\Delta L\) 表示误差
- RR 的话,则直接返回 0(此时我们知道是 0,因此是无偏)
- 继续的话使用一个估计的为线性组合(下图红色部分)
- \(\alpha+\beta=1\)
- 此时总的估计如下
- 如何在加入有偏估计的同时,还能得到无偏的结果?
- 总的估计为 \(W_{l-1}\cdot L^{r}\) \(\Rightarrow\) 上面第二项为 \(0\) \(\Rightarrow\) \(\alpha=\dfrac{1}{n_l}\)
- 有偏估计存在期望即可
- 在无偏的条件下,方差如下
- 检验过没有问题:\(E=n_lE_1+(1-n_l)E_2\)(方差也是一个期望)
- 假定:\(\hat{L}\) 估计比较准
- \(\hat{L}\approx L^{r}\)
- 此时:\(E\approx D^2\)
- 在此假定下,方差如下
Estimation of D2
- 估计方差
- 方差来源
- 不同 \(\omega\)
- \(L^{\text{in}}(\omega)\) 本身是个估计
- 根据两个来源展开
- 依据:\(E[(X-a)^2]=E[(X-EX)^2]+(a-EX)^2\)
- 粉色期望:对 \(L^{\text{in}}\) 内部求期望(把 \(\omega\) 的部分展开了)
- 红色期望:对 \(\omega\) 和 \(L^{\text{in}}\) 内部求期望
- \(\tilde{L}^{\text{in}}(\omega)\):\(L^{\text{in}}(\omega)\) 的真实值(没有内部方差)
- 拆分之后
- 第一项:算法对于 \(L^{\text{in}}(\omega)\) 估计的准确程度
- 第二项:真实值 \(\tilde{L}^{\text{in}}(\omega)\)
在各个方向上的变化程度(方差),与采样算法无关
- 如果是镜面,则为 0
- 一般来说,反射叶越大,方差越大、
- 近似:和反射叶的大小的平方成正比(只考虑 BRDF,不考虑光照)
- 第一项
- 使用一个全局的常数来表示:\(V_R\)
- 第二项
- Phong-like material,有一个 shininess 参数 \(s_l\) 控制反射叶的大小
- specular:\(s=\infty\)
- diffuse:\(s=0\)
- Phong-like material,有一个 shininess 参数 \(s_l\) 控制反射叶的大小
\[ \dfrac{V_V}{(s_l+1)^2} \]
- 因此
\[ D^2[L^{\text{in}}]=V_R+\dfrac{V_V}{(s_l+1)^2} \]
Variance-cost optimization
- 计算开销:\(n\) rays
- 总体目标:在计算开销相同的条件下,最小化方差
- 方差:所有光线、所有中间节点的方差
- \(k\) light rays
- \(l\) bounces
\[ \sum_{k}\sum_{l}\dfrac{\sigma_{k,l}^2}{n_{k,l}} =\sum_{k}\sum_{l}\left(W^2_{k,l}\cdot a^2_{k,l}\cdot\left(V_R+\dfrac{V_V}{(s_l+1)^2}\right)\right) \]
- 限制条件:\(\sum n_{k,l}=N\)
- 拉格朗日乘子法
- 结果如下
- 我们只需要使用正比的性质即可,如下是一种可行方案
- pure specular:\(s_l=\infty\Rightarrow n_l=1\)
- pure diffuse:\(s_l=1\Rightarrow
n_{\max}\)
- \(n_{\max}\)
的选择与场景性质有关,例如光照相关
- 光照各向同性:\(n_{\max}=1\)
- 光照各向异性:\(n_{\max}\uparrow\)
- 文章实现:\(n_{\max}=10\)
- \(n_{\max}\)
的选择与场景性质有关,例如光照相关
- 如果具有多种材质,则将其分开(specular + diffuse)
- 结论
GWTW
- Variance based Go with the Winners Strategy
- 根据上面的式子4计算系数
- \(<1\):RR
- \(>1\):S(四舍五入)
- 实现上还加上了有偏估计 \(\hat{L}\)
估计获取
- [WSCG-2003] Variance reduction for russian-roulette.
- 因为加了 NEE,因此只需要考虑 reflected radiance
- 场景是 closed 的,光源发射的 power/flux 如下
- 场景平均 albedo = \(\tilde{a}\),此时总的反射的 power 如下
- average power
- 平均 \(\hat{L}\) 估计如下(average radiance)
- 为什么 \(/S\pi\)?
- 假设 \(\hat{L}(\vec{x},\omega)\) 对任意 \(\omega\) 都相同,根据定义有如下式子(\(H^2\):半球面)
\[ \begin{aligned} \text{Irradiance}&=\dfrac{\text{Power}}{\text{Area}}=\dfrac{\Phi^{r}}{S}\\ &=\int_{H^2}\hat{L}(\vec{x},\omega)\cos\theta\;\mathrm{d}\omega\\ &=\hat{L}\int_{H^2}\cos\theta\sin\theta\;\mathrm{d}\omega\\ &=\hat{L}\int_{0}^{2\pi}\left(\int_{0}^{\pi/2}\cos\theta\sin\theta\;\mathrm{d}\theta\right)\;\mathrm{d}\phi\\ &=\hat{L}\pi \end{aligned} \]
- 于是有 \(\dfrac{\Phi^{r}}{S}=\hat{L}\pi\Rightarrow\hat{L}=\dfrac{\Phi^{r}}{\pi S}\)
实验对比
- 方法
- PT with classical RR(local albedo based RR)
- 这个也并不公平,应该比 throughput based RR
- GWTW(论文方式)
- PT with classical RR(local albedo based RR)
- 条件
- the same number of rays
- 实际上这个条件并不等于开销一致,GPU 上实现 splitting 存在 divergence 问题
- NEE
- the same number of rays
- 结果
- 论文说 GWTW 实现快了 \(20\%\),解释是减少了递归调用
- 太神奇了,不过论文的结果在实现上,看上去 CPU 实现的
- GWTW 达到相同的 error,可以减小 \(30\sim50\%\) 的光线
- 论文说 GWTW 实现快了 \(20\%\),解释是减少了递归调用
总结
- RR、S 的方差统一形式的表达归功于
- 个性
- S:加入了估计项,而且假定 \(\hat{L}\approx L^{r}\)
- 共性
- 近似:\(p(\omega)\propto w_l\)(这个能够实现,BSDF 采样即可)
- 个性
- 进一步的近似:材质的近似
- 实现很快:CPU 实现,splitting 的劣势没有显现出来
- 实际上还是退化成了只依赖于 camera ray