RIS
#
定义无偏贡献权重为随机变量W, supp(X)为f在X的支撑集.
E[f(X)W]=∫supp(X)f(x)dx若各样本空间使用相同提议分布, 权重w=Mp(X)p^(X)的RIS可以将抽样概率收敛为目标分布.
E[f(Y)WY]=E[n=1∑Mp^(Xn)f(Xn)i=1∑Mwi∑i=1Mwiwn]=M E[p^(Xn)f(Xn)wn]=∫supp(X1)⋯∫supp(XM)pn(xn)f(xn)i=1∏Mp(xi)dxi=∫supp(X1)⋯∫supp(XM)f(xn)dxni=1,i=n∏Mp(xi)dxi=∫supp(Y)f(y)dy若各样本空间提议分布不同, 需泛化M1→ci(Xi), 要求∑i=1Mci(x)=1.
E[f(Y)WY]=E[n=1∑Mp^(Xn)f(Xn)i=1∑Mwi∑i=1Mwiwn]=n=1∑M∫supp(X1)⋯∫supp(XM)pn(xn)f(xn)cn(xn)i=1∏Mpi(xi)dxi=n=1∑M∫supp(X1)⋯∫supp(XM)f(xn)cn(xn)dxni=1,i=n∏Mpi(xi)dxi=n=1∑M∫supp(Xn)f(xn)cn(xn)dxn=∫supp(Y)f(y)n=1∑Mcn(y)dy
GRIS
#
依据全期望公式E(XY)=∫Xx p(x) E(Y∣X=x)dx, 可得:
E[W∣X]=p(X)1若各样本的积分域与最终积分域不同, 需经位移映射Y=Tx(X)变换后再计算权重, 得到w=px(X)p^(Y)cx(Y)JX→Y, 其中JX→Y=∂X∂Y. 由于变换后为supp(Y)=Ti(supp(Xi)), 记变换后包含Y的样本域集合N(Y)={n:Y∈Tn(supp(Xn))}, 无偏要求supp(Y)⊆⋃n=1MTn(supp(Xn))且∑n∈N(Y)cn(Y)=1
E[f(Y)WY]=E[p^(Y)f(Y)i=1∑Mwi]=E[n=1,Y=Tn(Xn)∑Mp^(Y)f(Y)i=1∑Mwi∑i=1MwiwY]=n=1,y=Tn(xn)∑M∫supp(X1)⋯∫supp(XM)pn(xn)f(y)cn(y)Jxn→yi=1∏Mpi(xi)dxi=n=1,y=Tn(xn)∑M∫supp(X1)⋯∫supp(XM)f(y)cn(y)Jxn→ydxni=1,i=n∏Mpi(xi)dxi=n=1,y=Tn(xn)∑M∫Tn(supp(Xn))f(y)cn(y)dy=∫⋃n=1MTn(supp(Xn))f(y)n∈N(y)∑cn(y)dy泛化为无偏权重px(X)1→Wx, 不显式定义w, 得到WY=p^(Y)cx(Y)JX→YWx, 可以基于全期望公式证明WY=cx(Y)WxJX→Ywx∑i=1Mwi无偏:
E[f(Y)WY]=E[n=1,Y=Tn(Xn)∑Mf(Y)cn(Y)WnJXn→Ywn∑i=1Mwi∑i=1Mwiwn]=n=1,Y=Tn(Xn)∑ME[f(Y)cn(Y)WnJXn→Y]=n=1,y=Tn(xn)∑M∫supp(Xn)f(y)cn(y)Jxn→yE[Wn∣Xn=xn]pn(xn)dxn=n=1,y=Tn(xn)∑M∫supp(Xn)f(y)cn(y)Jxn→ydxn=n=1,y=Tn(xn)∑M∫Tn(supp(Xn))f(y)cn(y)dy=∫⋃n=1MTn(supp(Xn))f(y)n∈N(y)∑cn(y)dy令mx(Y)≥0为MIS权重, 满足∑n∈N(y)mn(y)=1, RIS权重设置如下:
w={mx(Y)p^(Y)WxJX→Y,0,Y⊆Tx(supp(X))otherwise设置cx=mx, 此时WY=p^(Y)1∑i=1Mwi, 即p^(Y)WY=∑i=1Mwi, 对无偏性E[f(Y)WY]=∫supp(Y)f(y)dy取f=p^, 得权重和的期望:
E[i=1∑Mwi]=E[p^(Y)WY]=∫supp(Y)p^(y)dy=∥p^∥M→∞时, 由大数定律∑i=1Mwi收敛至常数∥p^∥. 若p^归一化, 则WY→p^(Y)1.
WY=p^(Y)1i=1∑Mwi→p^(Y)∥p^∥
ReSTIR GI
#
每次蓄水池复用最终都存储无偏权重, 因此根据GRIS下次复用也可以得到无偏结果, 即链式GRIS. 目标像素的蓄水池总是被使用, 因此满足supp(Y)⊆⋃n=1MTn(supp(Xn)). 蓄水池结构为:
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定义的w, mx(Y)被替换为M. 令累积后支撑集中的样本数为N, 实际上累积过程会统计∑i=1NMi, 最终计算无偏权重时使用w_sum / p_hat / M_sum, 此时w中的M被归一化, 得到满足∑i=1Nmi(Y)=1的MIS权重mn(Y)=∑i=1NMiMn.
ReSTIR DI/GI都将M解释为蓄水池的样本数量, 但它实际决定MIS权重, 可以自由调整, 因此认为M是样本置信度更合理, 只是通常它与样本数相关. 若追求无偏, 需要复用过程中投射阴影光线, 若被遮挡不合并该蓄水池, 保证∑n∈N(y)mn(y)=1.
由于Lambertian的均匀分布特性, 基于入射辐亮度分布采样效率更高, 因此ReSTIR GI使用入射辐亮度作为目标分布. 由于Lambertian出射辐亮度均匀, 新样本不需要重新计算. Torrance-Sparrow直接基于BSDF抽样效率更高, 若一定要应用ReSTIR, 新样本目标分布计算开销大, 可采用Blinn-Phong等简单模型.
ReSTIR PT
#
使用主样本空间执行积分, 令CDF为P, 这使得每个顶点生成光线的PDF不再属于无偏权重.
∫xf(x)dx=∫uf(P−1(u))∂u∂P−1(u)du=∫up(x)f(P−1(u))du不同顶点数的积分不相交, 即f(x)=∑i=1∞∫xif(xi)dxi, ⋃i=1∞xi=x使得样本满足supp(Y)⊆⋃n=1MTn(supp(Xn)), 同时对于单个像素生成的光线, 生成的每个NEE样本总是顶点数不同, N(y)只位于一个支撑集, MIS权重设置为1即可.
对于当前像素y, 从对所有像素相同的相机顶点y0出发, 在某个spp下发射确定的初始光线击中y1, 之后都是随机采样, 由随机数ui生成散射方向ωi. 复用时使用另一个像素x的路径使用的随机数, 从y1出发生成新的ωiy, 若yi, xi, xi+1都满足条件(材质足够粗糙, 顶点距离足够远…), 将yi连接到xi+1并复用后续路径, 得到新路径y.
注意到由于重连接y和x拥有相同的顶点数, 且除生成yi→yi+1→yi+2使用的随机数外其余随机数相同, 若未使用VNDF等视线相关抽样则只需考虑yi→yi+1. 由于重要性抽样中U为目标分布的CDF, 令θ为立体角与法线的夹角, 对于同序顶点Jacobian形式如下:
∂uix∂uiy=∂ωiy∂uiy∂ωix∂ωiy∂uix∂ωix=pxi(ωix)pyi(ωiy)∂ωix∂ωiy=pxi(ωix)pyi(ωiy)cosθxcosθy∥pi+1x−piy∥2∥pi+1x−pix∥2对于非同序顶点, 我们无法得到最后立体角微分的解析形式. 但由于ωi+1x只依赖ωix, 可得∂ωi+1x∂ωiy=0, Jacobian为下三角行列式. 由于ωi+1y=ωi+1x, 形式如下:
Jx→y=∂uix∂uiy∂uix∂ui+1y∂ui+1x∂uiy∂ui+1x∂ui+1y=∂uix∂uiy∂ui+1x∂ui+1y=pxi(ωix)pyi(ωiy)pxi+1(ωi+1x)pyi+1(ωi+1y)cosθxcosθy∥pi+1x−piy∥2∥pi+1x−pix∥2目标分布为积分结果对像素的贡献, 初始权重为NEE/BSDF MIS无偏权重, 链式GRIS可实现无偏复用. 为节省内存, 追踪时就贪心的确定首个满足要求的xi和xi+1, 只存储随机数种子.