(论文)[2023] 基于子空间的双向路径连接渲染技术(5)

基于子空间的双向路径连接渲染技术(5)

代理追踪技术

处理镜面连接

  • 视子路末端顶点在漫反射表面上,光子路 \(\bar{y}=y_0\cdots y_{s-1}\) 末端顶点 \(y_{s-1}\) 在光滑表面上
  • 固定视子路,重新采样光子路
  • 目的:让光滑表面的 BSDF 表现正常
  • 固定 \(y_{s-1}\) 重新采样 \(y_{s-2}\) 使得 \(y_{s-1}\) 的 BSDF 表现正常
    • 如果 \(y_{s-2}\) 也是光滑表面,则也需要重追踪采样 \(y_{s-2}\)
    • 也就是说如果 \(\bar{y}\) 末端有 \(u\)连续的光滑顶点,则需要重新采样 \(y_{s-2}\cdots y_{s-u-1}\)
  • 采样过程:
    • 反向追踪
    • 先根据 \(z_{t-1}\to y_{s-1}\) 重追踪 \(y_{s-2}\)
    • 如果还有光滑顶点,则继续(\(y_{s-1}\to y_{s-2}\) 重追踪 \(y_{s-3}\),以此类推),否则停止
  • 材质不变
    • 保证重追踪的顶点材质和之前相同
    • 这样可以让一条路径对应的残缺路径被唯一确定,简化 PDF 计算
    • 不加限制:\(\text{LDSDE}\) 的路径可能被 \(\text{LSSDE}\) 的路径重追踪得到

路径划分

  • 残缺路径 \(\bar{h}\) 包含完整视子路 \(\bar{z}\)、残缺光子路 \(\bar{h}_y\)
  • 光子路 \(\bar{y}\) 如下

  • 重追踪 \(\bar{g}\) 中顶点
  • 残缺路径的 PDF

\[ p(\bar{h})=p(\bar{h}_y)p(\bar{z}) \]

  • 一条完整的光子路 \(\bar{y}\) 的生成过程,概率如下

\[ p(\bar{y})=p(\bar{h}^{\ast})\cdot p(\bar{g}\mid\omega_c,h_c)\cdot p(y_{s-1}\mid h_c,\bar{g}) \]

  • 只需要通过倒数评估估计 \(p(\bar{h}_y)\)
    • 概率为所有能够生成 \(\bar{h}_y\) 的完整光子路的概率
    • \(R\) 表示修复操作,\(R\left(\bar{h}_{y},\bar{g}\right)\) 就是完整路径

\[ \begin{aligned} p(\bar{h}_y) &=\int_{A^{u}}p\left[{R\left(\bar{h}_{y},\bar{g}\right)}\right]\;\mathrm{d}\mu(\bar{g})\\ &=\int_{A^{u}}p\left(\bar{h}^{\ast}\right)\cdot p\left(\bar{g}\mid\omega_c,h_c\right)\cdot p\left(y_{s-1}\mid h_c,\bar{g}\right)\;\mathrm{d}\mu(\bar{g})\\ &=p\left(\bar{h}^{\ast}\right)\int_{A^{u}}p\left(\bar{g}\mid\omega_c,h_c\right)\cdot p\left(y_{s-1}\mid h_c,\bar{g}\right)\;\mathrm{d}\mu(\bar{g})\\ &=p\left(\bar{h}^{\ast}\right)\mathcal{P}\left(u,h_c,y_{s-1},\omega_c\right)\\ \end{aligned} \]

  • \(\mathcal{P}\) 只取决于如下几个变量
    • 控制顶点 \(h_c\)
    • 镜面点 \(y_{s-1}\)
    • 控制方向 \(\omega_c\)
    • 连续光滑顶点的个数 \(u\)
  • 如果 \(\bar{g}\) 包含 \(y_0,y_1\),则 \(h_c,\omega_c\) 不存在
  • 注意:这几个变量在光子路追踪时可以获取到,因此可以在光子路追踪时进行倒数评估,减小开销

不同路径的处理

  • 无偏估计 \(\dfrac{1}{\mathcal{P}}\) 时,需要有一个辅助分布 \(q(\bar{g})\)
  • \(q(\bar{g})\) 可行策略集中的均匀混合
    • 例如:\(u=1\land y_0\in\bar{g}\) \(\Rightarrow\)​ 光源采样 + 从镜面点出发追踪

光源采样

  • \(u=1\land y_0\in\bar{g}\)
    • 随机在光源表面采样
  • \(u>1\) 时不使用,固定 \(y_{s-1}\) + 随机采样 \(y_0\) 无法找到镜面约束的中间顶点
    • 概率为 0

从控制顶点出发追踪

  • \(u=1\land y_0\notin\bar{g}\)
    • \(h_c=y_0\):光源所处的半球空间中 \(\cos\) 均匀采样
    • \(h_c\ne y_0\):根据 \(\omega_c,h_c\) 进行 BSDF 重要性采样
  • \(u>1\) 时不使用,理由同上

从镜面点出发追踪

  • 该策略都可用
  • 流程
    • \(y_{s-1}\) 的半球空间中采样初始方向,得到 \(y_{s-2}\)
    • 接着根据 \(y_{s-1}\to y_{s-2}\) 方向根据 \(y_{s-2}\) 的 BSDF 进行采样
    • 知道采样 \(\bar{g}\) 完成后停止

子空间统计量

  • 统计量无法在一次评估中获取
    • 优化倒数评估过程需要用到 \(\dfrac{p(\bar{h})}{q(\bar{h})}\)
      • 参数 \(B\)
    • MIS 权重需要用到倒数评估的期望
  • 使用子空间作为倒数评估的媒介
  • 预追踪一部分镜面投射光路 ,取 \(h_c,\omega_c\) 为样本建立控制子空间,取 \(y_{s-1}\) 为样本建立镜面子空间
    • 控制子空间:\((h_c,\omega_c)\to\) 控制子空间编号 \(C\)
      • \(C\)
    • 镜面子空间:\(y_{s-1}\to\) 镜面子空间编号 \(S\)
  • 于是 \(\mathcal{P}\) 的一个三维矩阵近似如下

\[ \mathcal{P}\left(u,h_c,y_{s-1},\omega_c\right)\approx \mathcal{P}\left(u,C,S\right) \]

  • 注意:这个近似只会用于对 \(B\) 和 MIS 权重的评估,而不作为倒数评估的结果

与子空间概率连接的结合

  • 代理追踪方法能够实现对镜面投射光路的高效采样
  • 可以使用 SPCBPT 的思想,为光子路残缺路径建立子空间,改善光子路残缺路径的选取

细节

  • 重采样
    • SPCBPT 中光子路的局部贡献值 \(f_y\) 会被用于重采样,但是残缺路径 \(\bar{g}\) 的局部贡献值不可知,需要与视路径连接并以重追踪构筑完整光路之后才能够得到
    • 因此对于残缺光路的重采样就是直接在子空间内部均匀采样
  • 存储
    • 重追踪后镜面点的入射方向不可知,残缺子路径直接根据镜面子空间 ID 进行子空间存储
  • PDF 评估
    • 倒数估算难以给出准确的 PDF 评估,采样子空间时不在追求全局最优,而是考虑光照能量在子空间之间的流通情况
    • \(\Gamma[T,S]\propto\) 视子空间 \(T\) 中的视子路 \(\bar{z}\) 和镜面子空间 \(S\) 中的残缺光子路 \(\bar{h}_y\) 的链接在冲追踪之后得到的完整路径的贡献值的期望

SPCBPT & Proxy Tracing

  • 代理追踪和子空间概率连接天然地就能得到良好的结合,我们使用代理追踪处理那些镜面投射光路,而使用SPCBPT 来处理那些一般的路径
  • 代理路径追踪能够补全 SPCBPT 的短板