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分层选取指下标分级确定, 如先选子池t再选子池内下标k, 记池为Z=(Zt,k). 全概率公式展开可得: 只要每一级都不依赖池中样本的数值, 逐级归一后边缘分布不变:
pX(x)=t∑P(t)k∑P(k∣t) pZt,k(x)=t∑P(t)k∑P(k∣t) p(x)=t∑P(t) p(x)=p(x)预抽样指抽样与使用分离: 按分布p生成样本池Z=(Z1,…,ZN), 使用样本不再抽样, 而是以下标J取出X=ZJ. 要求下标与池内容独立, 下标本身可以分层选取, 只要不依赖池中样本的数值. 对Z取全期望, 边缘分布为池内样本分布的混合:
pX(x)=n=1∑NP(J=n) pZn(x)=n=1∑NP(J=n) p(x)=p(x)X与直接按p抽样同分布, 因此可以直接替换任何一次抽样, 下游估计的无偏性不变:
E[p(X)f(X)]=∫p(x)f(x)pX(x)dx=∫f(x)dx
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,Yn=Tn(Xn)∑Mp^(Yn)f(Yn)i=1∑Mwi∑i=1Mwiwn]=n=1,yn=Tn(xn)∑M∫supp(X1)⋯∫supp(XM)pn(xn)f(yn)cn(yn)Jxn→yni=1∏Mpi(xi)dxi=n=1,yn=Tn(xn)∑M∫supp(X1)⋯∫supp(XM)f(yn)cn(yn)Jxn→yndxni=1,i=n∏Mpi(xi)dxi=n=1,yn=Tn(xn)∑M∫Tn(supp(Xn))f(yn)cn(yn)dyn=∫⋃n=1MTn(supp(Xn))f(y)n∈N(y)∑cn(y)dy泛化为无偏权重px(X)1→Wx, 不显式定义w, 可以基于全期望公式证明蓄水池合并结果WY=cx(Y)WxJX→Ywx∑i=1Mwi无偏:
E[f(Y)WY]=E[n=1,Yn=Tn(Xn)∑Mf(Yn)cn(Yn)WnJXn→Ynwn∑i=1Mwi∑i=1Mwiwn]=n=1,Yn=Tn(Xn)∑ME[f(Yn)cn(Yn)WnJXn→Yn]=n=1,yn=Tn(xn)∑M∫supp(Xn)f(yn)cn(yn)Jxn→ynE[Wn∣Xn=xn]pn(xn)dxn=n=1,yn=Tn(xn)∑M∫supp(Xn)f(yn)cn(yn)Jxn→yndxn=n=1,yn=Tn(xn)∑M∫Tn(supp(Xn))f(yn)cn(yn)dyn=∫⋃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 DI
#
直接光照使用NEE在光源表面抽样, 样本域为所有发光表面的并集A=⋃iAi, 积分表示如下, 其中G(p↔pe)=∥pe−p∥2∣cosθcosθe∣为几何项, V为可见性:
Lo(p,ωo)=∫Af(p,ωo,ωi)Le(pe,−ωi)G(p↔pe)V(p↔pe)dADelta光源无面积, 作为原子点并入基测度, 样本域扩充为A′=A∪{p1,…,pK}:
μ=dA+k=1∑Kδpk,∫A′fdμ=∫AfdA+k=1∑Kf(pk)面光样本为光源面上的点, 其表示与NEE顶点无关, 且所有顶点的积分域都是同一面积测度下的光源表面, 因此复用时位移映射恒等即JX→Y=1. 点光与聚光的世界空间位置, 或方向光的世界空间方向, 同样与NEE顶点无关, 为恒等映射.
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, M是分配给该样本域的置信度, 因此该域中的样本具有相同MIS权重. 最终计算无偏权重时使用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末尾为BSDF采样时所有维度均经CDF生成, PSS样本X=u均匀, p(X)=1. 若采样包含轮盘赌, 此时p(X)=∏iqi. 末尾为NEE时令末端顶点为pe, 得到混合样本X=(u,pe). 散射维度以立体角测度表示, 末端顶点以ReSTIR DI光源测度μ表示:
∫ω∫A′f(x)dμ(pe)i=1∏d−2dωi=∫u∫A′∏i=1d−2pi(ωi)f(x)dμ(pe)i=1∏d−2duiu均匀且pe独立地以NEE分布p1生成, 因此p(X)=p1(pe)∏iqi. 若NEE使用RIS生成, p1使用无偏权重即可. 末端顶点复用时为恒等映射, Jacobian只由散射维度贡献.
不同顶点数的积分不相交, 即f(x)=∑i=1∞∫xif(xi)dxi, ⋃i=1∞xi=x使得样本满足supp(Y)⊆⋃n=1MTn(supp(Xn)), 同时对于单个像素生成的光线, 生成的每个NEE样本总是顶点数不同, N(y)只位于一个支撑集, MIS权重设置为1即可.
对于当前像素y, 从对所有像素相同的相机顶点y0出发, 发射确定的初始光线击中y1, 之后由随机数ui生成散射方向ωi, 其中分量u~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, 微分得PDF. 重连接方向ωiy由几何确定, 波瓣选择随机数u~iy由u~ix映射至可选中ωiy的区间. 变化u~ix而ωix固定, 命中点pi+1x不变, 可得∂u~ix∂ωiy=0, 同理∂u~iy∂ωix=0. 根据波瓣选择概率可得∂u~ix∂u~iy=Pxi(lx)Pyi(ly), 链式法则给出的Jacobian依赖ly的选取:
∂uix∂uiy=∂(ωiy,u~iy)∂uiy∂(ωix,u~ix)∂(ωiy,u~iy)∂uix∂(ωix,u~ix)=Pxi(lx)pxi(ωix∣lx)Pyi(ly)pyi(ωiy∣ly)∂ωix∂ωiy黑盒材质只有合并波瓣的边缘分布p(ω)=∑lP(l)p(ω∣l), 需要不依赖波瓣的位移映射. 记u=(uˉ,u~), uˉ为方向维度, u~为波瓣选择维度. 波瓣选择按概率将[0,1)划分为连续区间, 第l段为Il=[∑j<lP(j),∑j≤lP(j)), 记t=P(l)u~−∑j<lP(j)为u~在段内的相对位置. 将生成ω的各波瓣原像按序拼接并归一化得坐标s:
s=p(ω)∑j<lP(j)p(ω∣j)+tP(l)p(ω∣l)ω与u~无关, 因此(uˉ,u~)→(ω,s)的Jacobian矩阵为块下三角, ∂uˉ∂s不参与行列式:
∂(uˉ,u~)∂(ω,s)=∂uˉ∂ω∂uˉ∂s0∂u~∂s=∂uˉ∂ω∂u~∂s=p(ω∣l)1p(ω)p(ω∣l)=p(ω)1由此可得du=p(ω)dωds, 位移映射定义为即(ωix,s)→(ωiy,s), 仍为双射且与材质的波瓣定义无关. ds约去, θ为立体角与法线的夹角, 对于同序顶点Jacobian如下:
∂uix∂uiy=pxi(ωix)dωixdspyi(ωiy)dωiyds=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如果直接用置信度计算权重, 需要了解当前样本是否位于所有被复用的样本域的支撑集中. 由于支撑集外的p^(x)=0, 基于它设置MIS权重天然的满足∑n∈N(Y)cn(Y)=1. 常用的配对MIS权重如下, 为计算中心规范样本中的p^←i(y), 必须在执行合并前将y逆变换到每个候选空间执行重放. 最终重放次数为2N, 相比朴素的O(N2)方法显著降低开销.
mi(Y)mc(Y)=N+11Mip^←i(Y)+NMcp^c(Y)Mip^←i(Y),i=c=N+11(1+i=1∑NMip^←i(Y)+NMcp^c(Y)NMcp^c(Y))目标分布为积分结果对像素的贡献, 初始权重为NEE/BSDF MIS无偏权重, 链式GRIS可实现无偏复用. 为节省内存, 采样时贪心的确定首对满足要求的xi, xi+1, 只存储随机数种子.
统计邻域内共享随机数种子的蓄水池数量来调整M, 可抑制时序复用带来的相关性. 此时置信度依赖其它样本, 即cn(Yn)→cn(Yn,Yn′,…), 无法提出至对Xn的积分, 因此有偏.
重连接要求路径相似, 可由J≈1推出. 记单侧几何项G(pa→pb)=∥pb−pa∥2∣cosθb∣, 其中θb为pa→pb与pb处法线的夹角, 方向PDF乘单侧几何项即面积密度, Jacobian可改写为:
Jx→y=pxi(ωix)G(pix→pi+1x)pyi(ωiy)G(piy→pi+1x)pxi+1(ωi+1x)pyi+1(ωi+1y)两个因子分别为重连接顶点pi+1x的面积密度变化, 以及pi+1x处出射方向改变导致的BSDF采样密度变化. 令二者相对误差均小于ϵ, 则(1−ϵ)2<Jx→y<(1+ϵ)2:
pxi(ωix)G(pix→pi+1x)pyi(ωiy)G(piy→pi+1x)−pxi(ωix)G(pix→pi+1x)<ϵpxi+1(ωi+1x)pyi+1(ωi+1y)−pxi+1(ωi+1x)<ϵ面积密度pA小通常代表光线抽样范围大, 采中当前样本概率小, 因此可用pA1表示光线足迹. 令θ0为主光线与p1x处法线的夹角, Rx2为均匀球面采样在该处的足迹, Rx可近似为πr2即足迹半径. 有限场景中相邻像素的路径不会任意发散, 假设两条路径主顶点间距不超过Rx 的常数倍, 且次级顶点间距随主顶点间距线性增长.
Rx=∣cosθ0∣4π∥p1x−p0x∥2∥p1x−p1y∥<C1Rx∥pjx−pjy∥<C2∥p1x−p1y∥=C1C2Rx追踪阶段无法做映射与重放, 无法比较x与y的密度函数, 经验假设随机重放保持面积密度, 令Tr为从piy不做重连接而是继续重放得到的顶点, 重连接条件变换为:
px(pi+1x)=pxi(ωix)G(pix→pi+1x)≈py(Tr(pi+1x))py(pi+1x)=pyi(ωiy)G(piy→pi+1x)py(Tr(pi+1x))py(pi+1x)−py(Tr(pi+1x))<ϵpA为下一次弹射命中点的面积密度, p, q, r均为该命中点的可能位置. 假设pA在自身足迹尺度内近似常数, 即存在c2, 使得以p的足迹为半径的邻域内任取q,r, 密度相对差不超过ϵ.
max(∥q−p∥,∥r−p∥)<pA(p)c2⟹pA(q)pA(r)−pA(q)<ϵ由几何假设得位移∥Tr(pi+1x)−pi+1x∥≤c1Ry, 其中c1=C1C2. 代入前式, 并由位移映射可逆性要求x满足相同重连接条件, 得光线足迹阈值:
c1Ry<py(pi+1x)c2⟹py(pi+1x)1>c2c12Ry2⟹pxi(ωix)G(pix→pi+1x)1>c2c12Rx2同时需要保证重连接点出射时不会因为低粗糙度材质导致BSDF PDF. 由光滑材质PDF的近似互易性可使用反向光线足迹:
pxi+1(ωi+1x)p(pix∣pi+1x,ωi+1x)=p(ωi+1x∣pi+1x,−ωix)≈p(−ωix∣pi+1x,ωi+1x)=p(−ωix∣pi+1x,ωi+1x)G(pi+1x→pix)此时位移量为∥piy−pix∥, 近似G(pi+1x→pix)≈G(pi+1x→piy), 得形式对称的逆光线足迹阈值. 两式合并, 常数并入用户参数c:
max(pxi(ωix)G(pix→pi+1x), pxi+1(ωi+1x)G(pi+1x→pix))−1>cRx2
ReSTIR Splatting
#
根据图元序号与重心坐标查询本帧的变换矩阵或骨骼动画, 即可获取前向运动矢量, 使用它将历史样本投影到当前帧. 包含在样本中的亚像素偏移使得历史候选集不再是确定的. 将历史样本的样本域扩展为历史帧全体路径空间, 目标函数包含滤波器权重:
p^k(x)=hk(x)p^(x)平衡启发式MIS需要将样本变换到所有候选样本的样本域中, 盒形滤波器位于像素外为0, 由于历史帧样本都来自不同像素, MIS可被简化:
mi(Y)=∑n∈N(Y)Mnp^←n(Y)Mip^←i(Y)=Mip^←i(Y)+Mcp^c(Y)Mip^←i(Y)亚像素坐标需要计算Jacobian, 令θV为视线与相机前向的夹角, θN为视线与法线的夹角, 非刚体形变时表面项取三角形面积比, 反之为1:
∂u∂p1∂v∂u=∂ω∂p1∂u∂ω=cosθN∥p1−p0∥2cos3θV=∂p1y∂u∂p1x∂p1y∂v∂p1x