跳过正文

Metatron Dev. IV: ReSTIR

·7077 字·15 分钟

RIS
#

定义无偏贡献权重为随机变量WW, supp(X)\mathrm{supp}(X)ffXX的支撑集.

E[f(X)W]=supp(X)f(x)dx \begin{equation} E[f(X)W] = \int_{\mathrm{supp}(X)} f(x) \mathrm{d}x \end{equation}

若各样本空间使用相同提议分布, 权重w=p^(X)Mp(X)w=\frac{\hat{p}(X)}{Mp(X)}的RIS可以将抽样概率收敛为目标分布.

E[f(Y)WY]=E[n=1Mf(Xn)p^(Xn)i=1Mwiwni=1Mwi]=M E[f(Xn)p^(Xn)wn]=supp(X1)supp(XM)f(xn)pn(xn)i=1Mp(xi)dxi=supp(X1)supp(XM)f(xn)dxni=1,inMp(xi)dxi=supp(Y)f(y)dy \begin{equation} \begin{aligned} E[f(Y)W_Y] &= E[\sum_{n=1}^M \frac{f(X_n)}{\hat{p}(X_n)}\sum_{i=1}^M w_i \frac{w_n}{\sum_{i=1}^M w_i}]\\ &= M\ E[\frac{f(X_n)}{\hat{p}(X_n)} w_n]\\ &= \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} \frac{f(x_n)}{p_n(x_n)}\prod_{i=1}^M p(x_i)\mathrm{d}x_i\\ &= \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} f(x_n)\mathrm{d}x_n \prod_{i=1, i \neq n}^M p(x_i)\mathrm{d}x_i\\ &= \int_{\mathrm{supp}(Y)} f(y)\mathrm{d}y \end{aligned} \end{equation}

若各样本空间提议分布不同, 需泛化1Mci(Xi)\frac{1}{M} \to c_i(X_i), 要求i=1Mci(x)=1\sum_{i=1}^M c_i(x) = 1.

E[f(Y)WY]=E[n=1Mf(Xn)p^(Xn)i=1Mwiwni=1Mwi]=n=1Msupp(X1)supp(XM)f(xn)cn(xn)pn(xn)i=1Mpi(xi)dxi=n=1Msupp(X1)supp(XM)f(xn)cn(xn)dxni=1,inMpi(xi)dxi=n=1Msupp(Xn)f(xn)cn(xn)dxn=supp(Y)f(y)n=1Mcn(y)dy \begin{equation} \begin{aligned} E[f(Y)W_Y] &= E[\sum_{n=1}^M \frac{f(X_n)}{\hat{p}(X_n)}\sum_{i=1}^M w_i \frac{w_n}{\sum_{i=1}^M w_i}]\\ &= \sum_{n=1}^M \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} \frac{f(x_n) c_n(x_n)}{p_n(x_n)}\prod_{i=1}^M p_i(x_i)\mathrm{d}x_i\\ &= \sum_{n=1}^M \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} f(x_n) c_n(x_n)\mathrm{d}x_n \prod_{i=1, i \neq n}^M p_i(x_i)\mathrm{d}x_i\\ &= \sum_{n=1}^M \int_{\mathrm{supp}(X_n)} f(x_n) c_n(x_n)\mathrm{d}x_n\\ &= \int_{\mathrm{supp}(Y)} f(y) \sum_{n=1}^M c_n(y)\mathrm{d}y \end{aligned} \end{equation}

GRIS
#

依据全期望公式E(XY)=Xx p(x) E(YX=x)dxE(XY)=\int_X x\ p(x)\ E(Y|X=x) \mathrm{d}x, 可得:

E[WX]=1p(X) \begin{equation} E[W|X]=\frac{1}{p(X)} \end{equation}

若各样本的积分域与最终积分域不同, 需经位移映射Y=Tx(X)Y = T_x(X)变换后再计算权重, 得到w=p^(Y)cx(Y)JXYpx(X)w=\frac{\hat{p}(Y)c_x(Y)J_{X \to Y}}{p_x(X)}, 其中JXY=YXJ_{X \to Y}=\left|\frac{\partial Y}{\partial X}\right|. 由于变换后为supp(Y)Ti(supp(Xi))\mathrm{supp}(Y) \neq T_i(\mathrm{supp}(X_i)), 记变换后包含YY的样本域集合N(Y)={n:YTn(supp(Xn))}\mathcal{N}(Y) = \{n : Y \in T_n(\mathrm{supp}(X_n))\}, 无偏要求supp(Y)n=1MTn(supp(Xn))\mathrm{supp}(Y) \subseteq \bigcup_{n=1}^M T_n(\mathrm{supp}(X_n))nN(Y)cn(Y)=1\sum_{n \in \mathcal{N}(Y)} c_n(Y)=1

E[f(Y)WY]=E[f(Y)p^(Y)i=1Mwi]=E[n=1,Y=Tn(Xn)Mf(Y)p^(Y)i=1MwiwYi=1Mwi]=n=1,y=Tn(xn)Msupp(X1)supp(XM)f(y)cn(y)Jxnypn(xn)i=1Mpi(xi)dxi=n=1,y=Tn(xn)Msupp(X1)supp(XM)f(y)cn(y)Jxnydxni=1,inMpi(xi)dxi=n=1,y=Tn(xn)MTn(supp(Xn))f(y)cn(y)dy=n=1MTn(supp(Xn))f(y)nN(y)cn(y)dy \begin{equation} \begin{aligned} E[f(Y)W_Y] &= E[\frac{f(Y)}{\hat{p}(Y)}\sum_{i=1}^M w_i]\\ &= E[\sum_{n=1, Y=T_n(X_n)}^M \frac{f(Y)}{\hat{p}(Y)}\sum_{i=1}^M w_i \frac{w_Y}{\sum_{i=1}^M w_i}]\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} \frac{f(y) c_n(y) J_{x_n \to y}}{p_n(x_n)}\prod_{i=1}^M p_i(x_i)\mathrm{d}x_i\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{\mathrm{supp}(X_1)}\cdots\int_{\mathrm{supp}(X_M)} f(y) c_n(y) J_{x_n \to y}\mathrm{d}x_n \prod_{i=1, i \neq n}^M p_i(x_i)\mathrm{d}x_i\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{T_n(\mathrm{supp}(X_n))} f(y) c_n(y)\mathrm{d}y\\ &= \int_{\bigcup_{n=1}^M T_n(\mathrm{supp}(X_n))} f(y) \sum_{n \in \mathcal{N}(y)} c_n(y)\mathrm{d}y\\ \end{aligned} \end{equation}

泛化为无偏权重1px(X)Wx\frac{1}{p_x(X)} \to W_x, 不显式定义ww, 得到WY=p^(Y)cx(Y)JXYWxW_Y=\hat{p}(Y)c_x(Y)J_{X \to Y}W_x, 可以基于全期望公式证明WY=cx(Y)WxJXYi=1MwiwxW_Y=c_x(Y)W_xJ_{X \to Y}\frac{\sum_{i=1}^M w_i}{w_x}无偏:

E[f(Y)WY]=E[n=1,Y=Tn(Xn)Mf(Y)cn(Y)WnJXnYi=1Mwiwnwni=1Mwi]=n=1,Y=Tn(Xn)ME[f(Y)cn(Y)WnJXnY]=n=1,y=Tn(xn)Msupp(Xn)f(y)cn(y)JxnyE[WnXn=xn]pn(xn)dxn=n=1,y=Tn(xn)Msupp(Xn)f(y)cn(y)Jxnydxn=n=1,y=Tn(xn)MTn(supp(Xn))f(y)cn(y)dy=n=1MTn(supp(Xn))f(y)nN(y)cn(y)dy \begin{equation} \begin{aligned} E[f(Y)W_Y] &= E[\sum_{n=1, Y=T_n(X_n)}^M f(Y)c_n(Y)W_nJ_{X_n \to Y}\frac{\sum_{i=1}^M w_i}{w_n}\frac{w_n}{\sum_{i=1}^M w_i}]\\ &= \sum_{n=1, Y=T_n(X_n)}^M E[f(Y)c_n(Y)W_nJ_{X_n \to Y}]\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{\mathrm{supp}(X_n)} f(y) c_n(y) J_{x_n \to y} E[W_n | X_n=x_n] p_n(x_n) \mathrm{d}x_n\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{\mathrm{supp}(X_n)} f(y) c_n(y) J_{x_n \to y} \mathrm{d}x_n\\ &= \sum_{n=1, y=T_n(x_n)}^M \int_{T_n(\mathrm{supp}(X_n))} f(y) c_n(y)\mathrm{d}y\\ &= \int_{\bigcup_{n=1}^M T_n(\mathrm{supp}(X_n))} f(y) \sum_{n \in \mathcal{N}(y)} c_n(y)\mathrm{d}y\\ \end{aligned} \end{equation}

mx(Y)0m_x(Y) \geq 0为MIS权重, 满足nN(y)mn(y)=1\sum_{n \in \mathcal{N}(y)} m_n(y) = 1, RIS权重设置如下:

w={mx(Y)p^(Y)WxJXY,YTx(supp(X))0,otherwise \begin{equation} \begin{aligned} w= \begin{cases} m_x(Y)\hat{p}(Y)W_xJ_{X \to Y}, & Y \subseteq T_x(\mathrm{supp}(X))\\ 0, &\mathrm{otherwise} \end{cases} \end{aligned} \end{equation}

设置cx=mxc_x = m_x, 此时WY=1p^(Y)i=1MwiW_Y=\frac{1}{\hat{p}(Y)}\sum_{i=1}^Mw_i, 即p^(Y)WY=i=1Mwi\hat{p}(Y)W_Y = \sum_{i=1}^M w_i, 对无偏性E[f(Y)WY]=supp(Y)f(y)dyE[f(Y)W_Y]=\int_{\mathrm{supp}(Y)} f(y)\mathrm{d}yf=p^f=\hat{p}, 得权重和的期望:

E[i=1Mwi]=E[p^(Y)WY]=supp(Y)p^(y)dy=p^ \begin{equation} E[\sum_{i=1}^M w_i] = E[\hat{p}(Y)W_Y] = \int_{\mathrm{supp}(Y)} \hat{p}(y)\mathrm{d}y = \|\hat{p}\| \end{equation}

MM \to \infty时, 由大数定律i=1Mwi\sum_{i=1}^M w_i收敛至常数p^\|\hat{p}\|. 若p^\hat{p}归一化, 则WY1p^(Y)W_Y \to \frac{1}{\hat{p}(Y)}.

WY=1p^(Y)i=1Mwip^p^(Y) \begin{equation} W_Y = \frac{1}{\hat{p}(Y)}\sum_{i=1}^M w_i \to \frac{\|\hat{p}\|}{\hat{p}(Y)} \end{equation}

ReSTIR GI
#

每次蓄水池复用最终都存储无偏权重, 因此根据GRIS下次复用也可以得到无偏结果, 即链式GRIS. 目标像素的蓄水池总是被使用, 因此满足supp(Y)n=1MTn(supp(Xn))\mathrm{supp}(Y) \subseteq \bigcup_{n=1}^M T_n(\mathrm{supp}(X_n)). 蓄水池结构为:

struct Reservoir {
    f32 p_hat; // target distribution
    f32 w_sum; // RIS weight sum
    f32 M; // confidence
    f32 W; // unbiased weight
};

蓄水池累积代码为w = p_hat * W * M * J, 可能的疑惑点在于, 相比GRIS定义的ww, mx(Y)m_x(Y)被替换为MM. 令累积后支撑集中的样本数为NN, 实际上累积过程会统计i=1NMi\sum_{i=1}^N M_i, 最终计算无偏权重时使用w_sum / p_hat / M_sum, 此时w中的M被归一化, 得到满足i=1Nmi(Y)=1\sum_{i=1}^N m_i(Y) = 1的MIS权重mn(Y)=Mni=1NMim_n(Y)=\frac{M_n}{\sum_{i=1}^N M_i}.

ReSTIR DI/GI都将MM解释为蓄水池的样本数量, 但它实际决定MIS权重, 可以自由调整, 因此认为MM是样本置信度更合理, 只是通常它与样本数相关. 若追求无偏, 需要复用过程中投射阴影光线, 若被遮挡不合并该蓄水池, 保证nN(y)mn(y)=1\sum_{n \in \mathcal{N}(y)} m_n(y) = 1.

由于Lambertian的均匀分布特性, 基于入射辐亮度分布采样效率更高, 因此ReSTIR GI使用入射辐亮度作为目标分布. 由于Lambertian出射辐亮度均匀, 新样本不需要重新计算. Torrance-Sparrow直接基于BSDF抽样效率更高, 若一定要应用ReSTIR, 新样本目标分布计算开销大, 可采用Blinn-Phong等简单模型.

ReSTIR PT
#

使用主样本空间执行积分, 令CDF为PP, 这使得每个顶点生成光线的PDF不再属于无偏权重.

xf(x)dx=uf(P1(u))P1(u)udu=uf(P1(u))p(x)du \begin{equation} \begin{aligned} \int_{\mathbf{x}} f(\mathbf{x}) d\mathbf{x} &=\int_{\mathbf{u}} f(P^{-1}(\mathbf{u})) \left|\frac{\partial P^{-1}(\mathbf{u})}{\partial\mathbf{u}}\right| \mathrm{d}\mathbf{u}\\ &=\int_{\mathbf{u}} \frac{f(P^{-1}(\mathbf{u}))}{p(\mathbf{x})} \mathrm{d}\mathbf{u}\\ \end{aligned} \end{equation}

不同顶点数的积分不相交, 即f(x)=i=1xif(xi)dxif(\mathbf{x})=\sum_{i=1}^\infty\int_{\mathbf{x}_i}f(\mathbf{x}_i)\mathrm{d}\mathbf{x}_i, i=1xi=x\bigcup_{i=1}^\infty\mathbf{x_i}=\mathbf{x}使得样本满足supp(Y)n=1MTn(supp(Xn))\mathrm{supp}(Y) \subseteq \bigcup_{n=1}^M T_n(\mathrm{supp}(X_n)), 同时对于单个像素生成的光线, 生成的每个NEE样本总是顶点数不同, N(y)\mathcal{N}(y)只位于一个支撑集, MIS权重设置为11即可.

对于当前像素yy, 从对所有像素相同的相机顶点y0y_0出发, 在某个spp下发射确定的初始光线击中y1y_1, 之后都是随机采样, 由随机数uiu_i生成散射方向ωi\omega_i. 复用时使用另一个像素xx的路径使用的随机数, 从y1y_1出发生成新的ωiy\omega^y_i, 若yiy_i, xix_i, xi+1x_{i+1}都满足条件(材质足够粗糙, 顶点距离足够远…), 将yiy_i连接到xi+1x_{i+1}并复用后续路径, 得到新路径y\mathbf{y}.

注意到由于重连接y\mathbf{y}x\mathbf{x}拥有相同的顶点数, 且除生成yiyi+1yi+2y_i \to y_{i+1} \to y_{i+2}使用的随机数外其余随机数相同, 若未使用VNDF等视线相关抽样则只需考虑yiyi+1y_i \to y_{i+1}. 由于重要性抽样中UU为目标分布的CDF, 令θ\theta为立体角与法线的夹角, 对于同序顶点Jacobian形式如下:

uiyuix=uiyωiyωiyωixωixuix=pyi(ωiy)pxi(ωix)ωiyωix=pyi(ωiy)pxi(ωix)cosθycosθxpi+1xpix2pi+1xpiy2 \begin{equation} \begin{aligned} \left|\frac{\partial u^y_i}{\partial u^x_i}\right| &=\left|\frac{\partial u^y_i}{\partial \omega^y_i}\right|\left|\frac{\partial \omega^y_i}{\partial \omega^x_i}\right|\left|\frac{\partial \omega^x_i}{\partial u^x_i}\right| =\frac{p_{y_i}(\omega^y_i)}{p_{x_i}(\omega^x_i)}\left|\frac{\partial \omega^y_i}{\partial \omega^x_i}\right|\\ &=\frac{p_{y_i}(\omega^y_i)}{p_{x_i}(\omega^x_i)}\left|\frac{\cos\theta^y}{\cos\theta^x}\right|\frac{\|\mathbf{p}^x_{i+1}-\mathbf{p}^x_{i}\|^2}{\|\mathbf{p}^x_{i+1}-\mathbf{p}^y_{i}\|^2} \end{aligned} \end{equation}

对于非同序顶点, 我们无法得到最后立体角微分的解析形式. 但由于ωi+1x\omega^x_{i+1}只依赖ωix\omega^x_{i}, 可得ωiyωi+1x=0\frac{\partial \omega^y_i}{\partial \omega^x_{i+1}}=0, Jacobian为下三角行列式. 由于ωi+1y=ωi+1x\omega^y_{i+1}=\omega^x_{i+1}, 形式如下:

Jxy=uiyuixuiyui+1xui+1yuixui+1yui+1x=uiyuixui+1yui+1x=pyi(ωiy)pxi(ωix)pyi+1(ωi+1y)pxi+1(ωi+1x)cosθycosθxpi+1xpix2pi+1xpiy2 \begin{equation} \begin{aligned} J_{\mathbf{x}\to\mathbf{y}} &=\begin{vmatrix} \frac{\partial u^y_i}{\partial u^x_i}& \frac{\partial u^y_i}{\partial u^x_{i+1}}\\ \frac{\partial u^y_{i+1}}{\partial u^x_i}& \frac{\partial u^y_{i+1}}{\partial u^x_{i+1}} \end{vmatrix} = \frac{\partial u^y_i}{\partial u^x_i}\frac{\partial u^y_{i+1}}{\partial u^x_{i+1}}\\ &=\frac{p_{y_i}(\omega^y_i)}{p_{x_i}(\omega^x_i)}\frac{p_{y_{i+1}}(\omega^y_{i+1})}{p_{x_{i+1}}(\omega^x_{i+1})}\left|\frac{\cos\theta^y}{\cos\theta^x}\right|\frac{\|\mathbf{p}^x_{i+1}-\mathbf{p}^x_{i}\|^2}{\|\mathbf{p}^x_{i+1}-\mathbf{p}^y_{i}\|^2} \end{aligned} \end{equation}

目标分布为积分结果对像素的贡献, 初始权重为NEE/BSDF MIS无偏权重, 链式GRIS可实现无偏复用. 为节省内存, 追踪时就贪心的确定首个满足要求的xix_ixi+1x_{i+1}, 只存储随机数种子.