(论文)[2023-SIG-Course] A Gentle Introduction to ReSTIR: Path Reuse in Real-time (1)

ReSTIR

  • 主页
  • update:March 4, 2024

Abstract

  • Reservoir-based Spatio-Temporal Importance Resampling
  • 内容
    • ReSTIR 的动机与应用、理论、局限、实现
    • 理论
    • 算法例子,实现可能的坑
    • 引擎集成,问题与挑战

1-Introduction

  • sample reuse 并不罕见,例如 denoiser、upsampler
  • ReSTIR:unbiased
  • 直观:filters PDFs(例如 path guiding 也能这么理解)
    • aggregating multiple samples into one with a better PDF

Motivation of ReSTIR

  • path integral
    • \(h_i\):image filter
      • 例如 box-filter:per-pixel domain \(\Omega_i\)

\[ I_i=\int_\Omega h_i(x)f(x)\;\mathrm{d}x \]

  • 试图让 \(p\propto f\),但是很难

\[ \langle I_i\rangle=\frac{1}{N}\sum_{j=1}^N\frac{f(X_j)}{p(X_j)} \]

  • ReSTIR 的前提
    • a good path for pixel \(a\), when reused for pixel \(b\) with minor modifications, tends to be useful for pixel \(b\)
    • good:\(f\) 值大
  • 不能直接使用 good path,会引入 bias
    • RIS:resampled importance sampling
  • RIS:多个样本,分配权重,重新采样生成一个样本
    • RIS is an aggregation machine
  • 使用 \(1\) 个样本比不过使用 \(M\) 个样本
    • 但是好处是,输出只有 \(1\) 个样本,后续处理代价小

2-Preliminaries

Monte Carlo integration

\[ I=\int_\Omega f(x) \mathrm{d}x \]

  • \(M\) 个样本:\(X_1,\cdots,X_{M}\)
  • uniform distribution:\(p=\dfrac{1}{\Omega}\)

\[ I\approx\langle I\rangle=|\Omega| \frac{1}{M}\sum_{i=1}^{M}f(X_{i}) \]

  • general

\[ \langle I\rangle=\sum_{i=1}^M\frac{1}{M}\frac{f(X_i)}{p_i(X_i)} \]

  • 单样本

\[ \langle I\rangle=\frac{f(X)}{p(X)} \]

  • 无偏:\(\mathbb{E}[\langle I\rangle]=I\)
  • perfect PDF(zero variance):\(f(X)/p(X),\forall X\in\Omega\) 是常数
  • variance:评估 quality/accuracy of an MC estimator
  • 降低方差
    • 更好的 \(p\)
    • 更多的 \(M\)

Supports

  • \(\text{supp}(f)\)
    • function’s support:函数值非 0
  • \(\text{supp}(X)\)
    • random variable’s:样本采样空间
  • MC 估计的无偏性保证:\(\text{supp}(f)\subseteq \text{supp}(X)\)
  • ReSTIR 复用了周围的样本,需要额外注意无偏性

Multiple Importance Sampling

\[ \langle I\rangle=\sum_{i=1}^Mm_i(X_i)\frac{f(X_i)}{p_i(X_i)} \]

  • 条件
    • \(\sum_im_i(x)=1,\forall x\in \text{supp}(f)\)
    • \(m_i(x)=0,\forall x\notin \text{supp}(X_i)\)
  • 无偏条件:\(\text{supp}(f)\subseteq \bigcup \text{supp}(X_i)\)
  • balance heuristic(平衡启发式)

\[ m_i(x)=\frac{p_i(x)}{\sum_jp_j(x)} \]

Unbiased Contribution Weights

  • 不能显式计算出 \(p(x)\),如果可计算出 \(1/p(x)\) 的期望也行
    • 这个是定义\(\mathbb{E}[W_X|X]=1/p(X)\)

\[ \langle I\rangle=f(X)\cdot W_X\quad\text{with}\quad\mathbb{E}[f(X)\cdot W_X]=\mathbb{E}[f(X)/p(X)]=I. \]

  • \(W_X\) 而不是 \(W(X)\)
    • 因为其不能在任意点求值,不能用在 MIS 参数中
    • 是估计,不是函数

3-Resampled Importance Sampling

  • MC 难点:没有好的便于采样的 pdf
  • RIS 流程
    • 输入一个候选样本序列 :\(X_1,\cdots,X_M\)
    • 给每一个样本一个重采样权重 \(w_i\)
    • 根据权重重新生成一个样本
  • 需要 \(W_X\),但是不一定是 pdf
    • 使用 \(W_X\) 替换掉 \(f(x)/p(x)\) 中的 \(1/p(x)\)
    • Unbiased Contribution Weights
  • 上面这个式子就是 ReSTIR 早期论文用的重采样权重
    • \(\hat{p}(x)\) is the target function that the PDF of \(X\) approximates better and better with more and more candidates.
    • \(\hat{p}(x)\) 虽然很难算,但是存在
    • 这里的 \(\dfrac{1}{M}\) 就是后面说的 MIS 权重【可以理解为 \(X_i\) 中可能有一样的,因此需要 MIS,\(1/M\) 的设置具体见下面这里

\[ w_i=\frac{\hat{p}(X_i)}{p(X_i)}\quad\mathrm{and}\quad W_X=\frac{1}{\hat{p}(X)}\left(\frac{1}{M}\sum_{i=1}^{M}w_i\right) \]

  • 泛化版本:重采样时正比于 \(w_i\),因此都一样

\[ w_i=\frac{1}{M}\frac{\hat{p}(X_i)}{p(X_i)}\quad\mathrm{and}\quad W_X=\frac{1}{\hat{p}(X)}\left(\sum_{i=1}^{M}w_i\right) \]

  • \(\sum_{i=1}^Mw_i\) 估计了 \(\hat{p}\) 的归一化因子

\[ \begin{aligned} \Rightarrow &\quad\sum_{i=1}^Mw_i=\hat{p}(X)W_X\\ \Rightarrow &\quad\mathbb{E}\left[\sum_{i=1}^Mw_i\right]=\mathbb{E}\left[\hat{p}(X)W_X\right]=\int_\Omega\hat{p}(x) \mathrm{d}x\\ \end{aligned} \]

  • \(\sum_{i=1}^{M}w_i\) 的方差趋近于 0 时(样本数足够多)
    • output PDF 趋近于 target PDF(\(\bar{p}=\hat{p}/\int\hat{p}\)
    • \(W_X\) 趋近于 \(1/\bar{p}(X)\)
    • 完全近似成 target function
  • 选择 \(\hat{p}=f\) 可以实现零方差

Resampled Importance Sampling

  • 流程如下
    • 注意:这里的 \(m_i(X_j)\) 也是存在的,外面和里面的下标含义不一样

  • 如果生成 \(X_i\) 的 pdf 已知,都为 \(p\),那么 \(W_{X_i}=\dfrac{1}{p(X_i)}\)
  • 正确性保证
    • 这里 \(m_i\) 的含义是假定样本来自于 \(M\) 个不同的分布(通用的假设)

\[ \mathbb{E}[W_X] =\dfrac{1}{\hat{p}(X)}\cdot\mathbb{E}\left[\sum_{i=1}^Mw_i\right] =\dfrac{1}{\hat{p}(X)}\cdot\mathbb{E}\left[\sum_{i=1}^Mm_i(X_i)\hat{p}(X_i)W_{X_i}\right] \]

  • 分析

\[ \begin{aligned} \mathbb{E}[f(X)W_X] &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M}\left(f(X_j)\cdot\left(\dfrac{1}{\hat{p}(X_j)}\cdot\sum_{i=1}^Mw_i\right)\cdot\dfrac{w_j}{\sum_{i=1}^Mw_j}\right)\right]\\ &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M}\left(f(X_j)m_j(X_j)W_{X_j}\right)\right] \end{aligned} \]

  • 还需要保证 \(X_i\) 能够覆盖到整个样本空间(\(f\) 的 support)(需要找到所有可能的样本)
  • 如果所有样本的 \(w_i\) 都是 0,那么没有样本生成,算法返回 a null sample \(\emptyset\)\(W_{\emptyset}=0\)
    • 特殊处理而不是直接替换,替换会导致 bias(为啥?)
  • 独立同分布:如果生成样本 \(X_i\) 的 pdf 已知为 \(p(x)\),MIS 权重可以设置为 \(\dfrac{1}{M}\)
    • 期望含义上,\(\mathbb{E}[W_X]=\dfrac{\int\hat{p}(X)}{\hat{p}(X)}\)\(M\to\infty\)

\[ \begin{aligned} \mathbb{E}[W_X] &=\dfrac{1}{\hat{p}(X)}\cdot\mathbb{E}\left[\sum_{i=1}^M\dfrac{1}{M}\dfrac{\hat{p}(X_i)}{p(X_i)}\right]\\ &=\dfrac{1}{\hat{p}(X)}\cdot\mathbb{E}\left[\dfrac{\hat{p}(X)}{p(X)}\right]\\ &=\dfrac{1}{\hat{p}(X)}\cdot\int\hat{p}(X)\;\mathrm{d}X\\ \end{aligned} \]

\[ \begin{aligned} \mathbb{E}[f(X)W_X] &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M}\left(f(X_j)\cdot\dfrac{1}{M}\cdot \dfrac{1}{p(X_j)}\right)\right]\\ &=\mathbb{E}_{X_j}\left[\dfrac{1}{M}\cdot\sum_{j=1}^{M}\dfrac{f(X_j)}{p(X_j)}\right]\\ &=\mathbb{E}_{X_j}\left[\dfrac{f(X_j)}{p(X_j)}\right]\\ \end{aligned} \]

例子:Simple integration

  • 函数 \(f\),根据已知的 pdf \(p\) 生成样本序列 \(X_1,\cdots,X_M\)
  • 使用方式
    • 已知 \(p\),于是 \(W_{X_i}=\dfrac{1}{p(X_i)}\)
    • \(m_i(x)=\dfrac{1}{M}\)
      • can only be used if all samples individually cover \(\text{supp}(f)\)
      • 如果一个样本有两种采样方式,而且他们并不是都完全覆盖 \(\text{supp}(f)\)\(1/M\) 带来 bias
        • 例如 BSDF + light
  • 计算

\[ w_i=\dfrac{1}{M}\dfrac{\hat{p}(X_i)}{p(X_i)} \]

  • 根据 \(w_i\) 生成新样本 \(Y\)

\[ W_Y=\dfrac{1}{\hat{p}(Y)}\sum_{j=1}^{M}w_j \]

  • 此时正确性保证容易证明
    • 最后的结果就是我们常用的 MC 无偏估计

\[ \begin{aligned} \mathbb{E}\left[f(Y)W_Y\right] &=\sum_{i=1}^{M}\left(\left(f(X_i)\cdot\dfrac{1}{\hat{p}(X_i)}\sum_{j=1}^{M}w_j\right)\cdot\left(\dfrac{w_i}{\sum_{j=1}^{M}w_j}\right)\right)\\ &=\dfrac{1}{M}\sum_{i=1}^{M}\dfrac{f(X_i)}{p(X_i)}\\ \end{aligned} \]

  • 使用 \(\hat{p}=f\) 的时候效果最好,使用其它值也能保证正确,但是效果变差(方差分析?)
    • 计算 \(f\) 复杂度比较高的时候,使用其他近似

例子:BSDF importance sampling

  • 我们不知道具体的 \(f\),使用简单的替代:\(\hat{p}=\text{BSDF}\cdot\cos\)
    • 证明和上面类似的,上面并没有用到 \(\hat{p}=f\) 的条件
  • 效果并不一定好

MIS weights

  • \(m_i(x)=\dfrac{1}{M}\) 只有在一种采样方式的时候无偏
    • 或者说所有的采样方式都能完全覆盖整个定义域的时候,无偏
    • 否则则是有偏的
      • \(\sum_{1}^{M}m_i(x)\) 小于 1 了(有些采样方式采样不到 \(x\)
  • 如果样本生成的 pdf 已知,则可以使用平衡启发式

\[ m_i(x)=\frac{p_i(x)}{\sum_{j=1}^Mp_j(x)} \]

  • MIS 权重如果考虑了其他样本 \(x_j\) 的信息,多半是错误的
    • 只考虑当前样本 \(x\) 的信息
  • 在正确计算 MIS 之后,我们只需要满足所有方法的采样空间的并集包含 \(f\) 的定义域即可
    • 不要求每一个都包含
    • 容易实现:只需要并上一个保守实现即可
  • 算 MIS 权重很慢,需要改进

例子:RIS between BSDF and NEE

  • BSDF(\(p_1\))采样得到 \(M_1\) 个样本,light(\(p_2\))采样得到 \(M_2\) 个样本
  • BSDF 为例
    • 相当于这里看作有 \(M_1+M_2\) 种采样方案
    • \(i=1,\cdots,M_1\) 时,\(m_i,w_i\) 如下

\[ m_i(x)=\frac{p_1(x)}{M_1p_1(x)+M_2p_2(x)} \]

\[ \begin{aligned} w_{i}(X_i)& =m_{1}(X_{i}) \hat{p}(X_{i})W_{X_{i}} \\ &= \left(\frac{p_{1}(X_{i})}{M_{1}p_{1}(X_{i})+M_{2}p_{2}(X_{i})}\right)\hat{p}(X_{i})\frac{1}{p_{1}(X_{i})} \end{aligned} \]

  • light 类似,\(i=M_1+1,\cdots,M_1+M_2\) 时选 light
  • \(W_X\)

\[ W_X=\dfrac{1}{\hat{p}(X)}\sum_{j=1}^{M_1+M_2}w_j \]

  • 证明类似

\[ \begin{aligned} \mathbb{E}[f(X)W_X] &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M}\left(f(X_j)m_j(X_j)W_{X_j}\right)\right]\\ &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M_1}\left(f(X_j)\cdot m_j(X_j)\cdot\dfrac{1}{p_1({X_j})}\right)+\cdots\right]\\ &=\mathbb{E}_{X_j}\left[\left(\dfrac{f(X_j)}{p_1({X_j})}\cdot m_j(X_j)\right)+\cdots\right]\\ &=\mathbb{E}_{X_j}\left[\left(\dfrac{f(X_j)}{p_1({X_j})}\cdot m_j(X_j)\right)\right]+\cdots\\ 独立随机变量 &=\int\left(\dfrac{f(X_j)}{p_1({X_j})}\cdot m_j(X_j)\right)\cdot p_1(X_j)\;\mathrm{d}X_j+\cdots\\ &=\int\left(f(X_j)\cdot m_j(X_j)\right)\;\mathrm{d}X_j+\cdots\\ &=\int\left(f(X_j)\cdot\sum_j m_j(X_j)\right)\;\mathrm{d}X_j\\ &=\int f(X_j)\;\mathrm{d}X_j\\ \end{aligned} \]

\[ \begin{aligned} \mathbb{E}[f(X)W_X] &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M}\left(f(X_j)m_j(X_j)W_{X_j}\right)\right]\\ &=\mathbb{E}_{X_j}\left[\sum_{j=1}^{M_1}\left(f(X_j)\cdot\frac{p_1(X_j)}{M_1p_1(X_j)+M_2p_2(X_j)}\cdot\dfrac{1}{p_1({X_j})}\right)+\cdots\right]\\ &=\mathbb{E}_{X_j}\left[\left(\dfrac{f(X_j)}{p_1({X_j})}\cdot\frac{M_1p_1(X_j)}{M_1p_1(X_j)+M_2p_2(X_j)}\right)+\cdots\right]\\ &=\mathbb{E}_{X_j}\left[\left(f(X_j)\cdot\frac{M_1}{M_1p_1(X_j)+M_2p_2(X_j)}\right)\right]+\cdots\\ 独立随机变量 &=\int\left(f(X_j)\cdot\frac{M_1}{M_1p_1(X_j)+M_2p_2(X_j)}\right)\cdot p_1(X_j)\;\mathrm{d}X_j+\cdots\\ &=\int\left(f(X_j)\cdot\frac{M_1 p_1(X_j)}{M_1p_1(X_j)+M_2p_2(X_j)}\right)\;\mathrm{d}X_j+\cdots\\ &=\int\left(f(X_j)\cdot\frac{M_1 p_1(X_j)+M_2p_2(X_j)}{M_1p_1(X_j)+M_2p_2(X_j)}\right)\;\mathrm{d}X_j\\ &=\int f(X_j)\;\mathrm{d}X_j\\ 也等价于使用\ p_{12}\ 进行采样 &=\dfrac{M_1}{M_1+M_2}\mathbb{E}_{X_j}\left[\left(\frac{(M_1+M_2)f(X_j)}{M_1p_1(X_j)+M_2p_2(X_j)}\right)\right]+\cdots\\ &=\dfrac{M_1}{M_1+M_2}\mathbb{E}_{X_j}\left[\left(\frac{f(X_j)}{p_{12}(X_j)}\right)\right]+\cdots\\ &=\mathbb{E}_{X_j}\left[\left(\frac{f(X_j)}{p_{12}(X_j)}\right)\right] \end{aligned} \]

Inputs with unknown PDFs

  • 不知道采样样本所使用的 pdf,但是知道 UCW(unbiased contribution weights)
    • \(W_{X_1},\cdots,W_{X_M}\)
    • 并且假定输入是通过 RIS 得到的
    • 根据 UCW 定义:\(\mathbb{E}[W_{X_i}]=\dfrac{1}{p_i(X_i)}\)
  • 此时整体流程都一样,但是算不出来 MIS 权重
  • 因为 RIS 得到,使用 \(\hat{p}_i(x)\) 作为代理
  • generalized balance heuristic

\[ m_i(x)=\frac{\hat{p}_i(x)}{\sum_{j=1}^M\hat{p}_j(x)} \]

  • 迭代的时候,我们保证变量的定义域(原始的 \(p\) 采样得到的)和 target function \(\hat{p}\) 的定义域完全相同
    • \(\hat{p}=0\) exactly when \(p=0\)
    • 通过使用一个 canonical sample \(X_c\) 保证(通过在一个覆盖 \(\text{supp}(\hat{p})\) 的 pdf RIS 实现)
  • 如此便能实现重用