跳过正文

Metatron Dev. V: 抽样优化

Path Guiding
#

路径引导基于已有样本估计场景贡献, 通过MIS选择BSDF或PG, 结果无偏.

ReSTIR PG
#

局部路径引导拟合的理想分布为后缀贡献:

p(ωip,ωo)f(p,ωo,ωi)Li(p,ωi)cosθ \begin{equation} p(\omega_i|\mathbf{p}, \omega_o) \propto f(\mathbf{p}, \omega_o, \omega_i)L_i(\mathbf{p}, \omega_i)|\cos\theta| \end{equation}

ReSTIR PT将路径贡献作为目标分布p^(x)=f(x)\hat{p}(\mathbf{x})=f(\mathbf{x}), 记A\mathcal{A}为场景表面, WeW_e为传感器响应, hxh_x为像素xx的重建滤波器, Le(pn)L_e(\mathbf{p}_n)为末端顶点自发光, 路径贡献函数为:

f(x)=We(p0p1)G(p0p1)i=1n1f(pi+1pipi1)G(pipi+1)Le(pn) \begin{equation} f(\mathbf{x}) = W_e(\mathbf{p}_0 \to \mathbf{p}_1)G(\mathbf{p}_0 \leftrightarrow \mathbf{p}_1) \prod_{i=1}^{n-1} f(\mathbf{p}_{i+1} \to \mathbf{p}_i \to \mathbf{p}_{i-1})G(\mathbf{p}_i \leftrightarrow \mathbf{p}_{i+1}) L_e(\mathbf{p}_n) \end{equation}

定义逐顶点的传输因子TT并简化上式:

T(pi)={f(pi+1pipi1)G(pipi+1),i>1We(p0p1)G(p0p1)f(p2p1p0)G(p1p2),i=1 \begin{equation} T(\mathbf{p}_i) = \begin{cases} f(\mathbf{p}_{i+1} \to \mathbf{p}_i \to \mathbf{p}_{i-1})G(\mathbf{p}_i \leftrightarrow \mathbf{p}_{i+1}), & i > 1\\ W_e(\mathbf{p}_0 \to \mathbf{p}_1)G(\mathbf{p}_0 \leftrightarrow \mathbf{p}_1)f(\mathbf{p}_2 \to \mathbf{p}_1 \to \mathbf{p}_0)G(\mathbf{p}_1 \leftrightarrow \mathbf{p}_2), & i = 1 \end{cases} \end{equation} f([p0,,pn])=i=1n1T(pi) Le(pn) \begin{equation} f([\mathbf{p}_0, \dots, \mathbf{p}_n]) = \prod_{i=1}^{n-1}T(\mathbf{p}_i)\ L_e(\mathbf{p}_n) \end{equation}

记像素xx的路径空间为Ωx\Omega_x:

Cx=1Ωxf(x)dx \begin{equation} C_x = \frac{1}{\int_{\Omega_x} f(\mathbf{x})\mathrm{d}\mathbf{x}} \end{equation}

全体像素构成对整个路径空间Ω=n=2An\Omega=\bigcup_{n=2}^\infty \mathcal{A}^n的分层抽样, 其密度为各像素分布的混合:

p(x)=Φ(p0,p1)f(x),Φ(p0,p1)=1Nx=1NCx[hx(p0p1)>0] \begin{equation} p(\mathbf{x}) = \Phi(\mathbf{p}_0, \mathbf{p}_1)f(\mathbf{x}), \quad \Phi(\mathbf{p}_0, \mathbf{p}_1) = \frac{1}{N}\sum_{x=1}^N C_x[h_x(\mathbf{p}_0 \to \mathbf{p}_1) > 0] \end{equation}

dpa:b=dpadpb\mathrm{d}\mathbf{p}_{a:b}=\mathrm{d}\mathbf{p}_a \cdots \mathrm{d}\mathbf{p}_b, 约定a>ba > b时积分退化为被积函数本身:

p(pi+1p0,,pi)=p(p0,,pi+1)p(p0,,pi)=n=i+1Ani1p(x)dpi+2:nn=i+1Anip(x)dpi+1:n \begin{equation} p(\mathbf{p}_{i+1}|\mathbf{p}_0, \dots, \mathbf{p}_i) = \frac{p(\mathbf{p}_0, \dots, \mathbf{p}_{i+1})}{p(\mathbf{p}_0, \dots, \mathbf{p}_i)} = \frac{\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i-1}} p(\mathbf{x})\mathrm{d}\mathbf{p}_{i+2:n}} {\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i}} p(\mathbf{x})\mathrm{d}\mathbf{p}_{i+1:n}} \end{equation}

Φ\Phi只依赖p0\mathbf{p}_0p1\mathbf{p}_1, 条件i1i \geq 1已固定二者, 同时t=1i1T(pt)\prod_{t=1}^{i-1}T(\mathbf{p}_t)与积分变量无关, 一并约去:

p(pi+1p0,,pi)=n=i+1Ani1t=1n1T(pt)Le(pn)dpi+2:nn=i+1Anit=1n1T(pt)Le(pn)dpi+1:n=T(pi)n=i+1Ani1t=i+1n1T(pt)Le(pn)dpi+2:nn=i+1Anit=in1T(pt)Le(pn)dpi+1:n \begin{equation} \begin{aligned} p(\mathbf{p}_{i+1}|\mathbf{p}_0, \dots, \mathbf{p}_i) &= \frac{\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i-1}} \prod_{t=1}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+2:n}} {\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i}} \prod_{t=1}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+1:n}}\\ &= \frac{T(\mathbf{p}_i)\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i-1}} \prod_{t=i+1}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+2:n}} {\sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i}} \prod_{t=i}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+1:n}} \end{aligned} \end{equation}

分子中T(pi)T(\mathbf{p}_i)之后的求和即入射辐亮度:

Li(pi+1pi)=n=i+1Ani1t=i+1n1T(pt)Le(pn)dpi+2:n \begin{equation} L_i(\mathbf{p}_{i+1} \to \mathbf{p}_i) = \sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i-1}} \prod_{t=i+1}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+2:n} \end{equation}

分母相比入射辐亮度少了自发光:

Li(pipi1)Le(pipi1)=n=i+1Anit=in1T(pt)Le(pn)dpi+1:n \begin{equation} L_i(\mathbf{p}_i \to \mathbf{p}_{i-1}) - L_e(\mathbf{p}_i \to \mathbf{p}_{i-1}) = \sum_{n=i+1}^\infty \int_{\mathcal{A}^{n-i}} \prod_{t=i}^{n-1}T(\mathbf{p}_t)L_e(\mathbf{p}_n)\mathrm{d}\mathbf{p}_{i+1:n}\\ \end{equation}

分母只依赖pi1\mathbf{p}_{i-1}pi\mathbf{p}_i, 相对pi+1\mathbf{p}_{i+1}为常数, 因此p0,,pi2\mathbf{p}_0, \dots, \mathbf{p}_{i-2}对条件分布没有影响:

p(pi+1pi1,pi)f(pi+1pipi1)G(pipi+1)Li(pi+1pi) \begin{equation} p(\mathbf{p}_{i+1}|\mathbf{p}_{i-1}, \mathbf{p}_i) \propto f(\mathbf{p}_{i+1} \to \mathbf{p}_i \to \mathbf{p}_{i-1})G(\mathbf{p}_i \leftrightarrow \mathbf{p}_{i+1})L_i(\mathbf{p}_{i+1} \to \mathbf{p}_i) \end{equation}

转立体角测度结果如下, 即服从路径贡献分布的路径, 局部弹射方向的条件分布为理想的局部引导分布. ReSTIR样本只是无偏权重, 初始样本质量差时相关性较强.

p(ωipi,ωo)f(pi,ωo,ωi)Li(pi,ωi)cosθ \begin{equation} p(\omega_i|\mathbf{p}_i, \omega_o) \propto f(\mathbf{p}_i, \omega_o, \omega_i)L_i(\mathbf{p}_i, \omega_i)|\cos\theta| \end{equation}

p(ωip,ωo)p(\omega_i|\mathbf{p}, \omega_o)需要拟合7D模型因此实时不可行. 划分场景为空间网格, 在格内拟合求平均以消去p\mathbf{p}, 降维到4D的p(ωiωo)p(\omega_i|\omega_o). 漫反射BSDF为常数, 光滑镜面更依赖BSDF抽样, 因此通过积分消去ωo\omega_o后, 只有粗糙镜面效果较差, 可进一步降维到2D:

p(ωi)=H2p(ωiωo)p(ωo)dωoLi(ωi)cosθH2f(ωo,ωi)p(ωo)dωo \begin{equation} p(\omega_i) = \int_{\mathcal{H}^2} p(\omega_i|\omega_o)p(\omega_o)\mathrm{d}\omega_o \propto L_i(\omega_i)|\cos\theta| \int_{\mathcal{H}^2} f(\omega_o, \omega_i)p(\omega_o)\mathrm{d}\omega_o \end{equation}

p(ωi)p(\omega_i)以vMF拟合, μkS2\mu_k \in \mathcal{S}^2为单位平均方向, κk0\kappa_k \geq 0为集中度, kπk=1\sum_k \pi_k = 1:

V(ω;Θ)=k=1Kπkv(ω;μk,κk)=k=1Kκ4πsinhκeκμω \begin{equation} \mathcal{V}(\omega;\Theta) = \sum_{k=1}^K \pi_k v(\omega;\mu_k, \kappa_k) = \sum_{k=1}^K \frac{\kappa}{4\pi\sinh\kappa}e^{\kappa\mu \cdot \omega} \end{equation}

展开sinh\sinh可得vMF随着κ\kappa增长而收窄集中于μ\mu的波瓣:

v(ω;μ,κ)=κ2π(1e2κ)eκ(1μω)κ2πeκ(1μω) \begin{equation} v(\omega;\mu, \kappa) = \frac{\kappa}{2\pi(1 - e^{-2\kappa})}e^{-\kappa(1 - \mu \cdot \omega)} \approx \frac{\kappa}{2\pi}e^{-\kappa(1 - \mu \cdot \omega)} \end{equation}

以EM迭代求解, E步固定参数, 计算责任:

γk(ωn)=πkv(ωn;μk,κk)j=1Kπjv(ωn;μj,κj) \begin{equation} \gamma_k(\omega_n) = \frac{\pi_k v(\omega_n;\mu_k, \kappa_k)}{\sum_{j=1}^K \pi_j v(\omega_n;\mu_j, \kappa_j)} \end{equation}

M步固定责任, 更新参数, ϵ=0.01\epsilon = 0.01防止分量权重归零:

wk=n=1Nγk(ωn),rk=n=1Nγk(ωn)ωnπk=wk+ϵj=1K(wj+ϵ),μk=rkrk,Rˉk=rkwk \begin{equation} \begin{aligned} w_k = \sum_{n=1}^N \gamma_k(\omega_n), \quad r_k = \sum_{n=1}^N \gamma_k(\omega_n)\omega_n\\ \pi_k = \frac{w_k + \epsilon}{\sum_{j=1}^K (w_j + \epsilon)}, \quad \mu_k = \frac{r_k}{\|r_k\|}, \quad \bar{R}_k = \frac{\|r_k\|}{w_k} \end{aligned} \end{equation}

方向越集中Rˉk[0,1]\bar{R}_k \in [0, 1]越接近1, 由其反解κk\kappa_k:

κkRˉk(3Rˉk2)1Rˉk2 \begin{equation} \kappa_k \approx \frac{\bar{R}_k(3 - \bar{R}_k^2)}{1 - \bar{R}_k^2} \end{equation}

ReSTIR PT无偏权重包含足够信息, 不复用历史分布, 记录最终路径所有顶点以更新引导.

VXPG
#

将第二次弹射顶点的NEE采样结果注入体素, 估计漫反射辐照度:

E(vi)=1Nx2viLl(x2) \begin{equation} E(v_i) = \frac{1}{N}\sum_{\mathbf{x}_2 \in v_i} L_l(\mathbf{x}_2) \end{equation}

32×3232 \times 32图块中心像素为矩心, 单次SLIC聚类计算超像素, p\mathbf{p}, n\mathbf{n}为世界空间位置和法线, u\mathbf{u}为像素坐标, wuw_u为超参数, 距离函数如下:

distp(x,y)=pxpy2+wuuxuy2+{0, if nxny>0.11000000, otherwise \begin{equation} \text{dist}_p(x, y) = |\mathbf{p}_x - \mathbf{p}_y|^2 + w_u |\mathbf{u}_x - \mathbf{u}_y|^2 + \begin{cases} \begin{aligned} &0,&\ \text{if}\ \mathbf{n_x}\cdot\mathbf{n_y} > 0.1\\ &1000000,&\ \text{otherwise} \end{aligned} \end{cases} \end{equation}

在屏幕空间分层抽样128条路径, 所有体素向所有样本路径的x2\mathbf{x}_2发射光线以验证可见性, 得128位位域RR, 执行K-means聚类. \oplus为异或, wEw_E为超参数, 距离函数如下:

distv(x,y)=countbits(RxRy)+wEExEy \begin{equation} \text{dist}_v(x, y) = \text{countbits}(R_x \oplus R_y) + w_E |E_x - E_y| \end{equation}

聚类后依据超像素与超体素组成的元组分桶, 从桶中抽取32个路径样本统计平均路径通量:

Tˉ(p,v)=1Ni=1Nf(p2p1p0)G(p1p2) \begin{equation} \bar{T}(p', v') = \frac{1}{N}\sum_{i = 1}^N f(\mathbf{p}_2 \rightarrow \mathbf{p}_1 \rightarrow \mathbf{p}_0) G(\mathbf{p}_1 \leftrightarrow \mathbf{p}_2) \end{equation}

依据平均路径通量重要性抽样得超像素与超体素, 再抽样桶中的体素. 光栅化执行体素化, 得体素中所有三角形的包围盒, AA为包围盒最大面的面积, 抽样权重如下:

ϕ(vi)=E(vi)A(vi) \begin{equation} \phi(v_i) = E(v_i)A(v_i) \end{equation}

得到体素后, 使用球面三角形抽样确定与包围盒可见面的相交点, 发射光线求交.

RCPG
#

基于辐射度级联摆放探针, 使用八面体纹理存储辐射度, 转为立体角的Jacobian如下:

J=(1+2min(1uv,0)2u2v+2uv+2u2+2v2)32 \begin{equation} |J| = \left(1 + 2\min(1 - |u| - |v|, 0) - 2|u| - 2|v| + 2|uv| + 2u^2 + 2v^2\right)^{-\frac{3}{2}} \end{equation}

贴近物体的探针命中距离短, 需要的采样率低, 反之采样率高. 不同LOD的探针对应不同的距离区间, 基于区间远端与探针体素内嵌球形成的锥体, 可估计角采样Nyquist频率. 令ww为体素边长, dd为与体素中心的距离, cc为超参数, 采样频率估计如下:

θmin=2arcsinw2dmax,fmax=1θmin<fs2,dmax=cw2sin1fs \begin{equation} \theta_{\min} = 2\arcsin\frac{w}{2d_{\max}}, \quad f_{\max} = \frac{1}{\theta_{\min}} < \frac{f_s}{2}, \quad d_{\max} = \frac{cw}{2\sin\frac{1}{f_s}} \end{equation}

所有探针纹素每帧更新, 只追踪距离区间, 命中确定二值透明. 下采样父级探针, 做透明度混合填充区间外辐射度. 探针通过指数混合累积历史, 命中时查询历史探针, 存储无限弹射辐射度. 每帧对场景执行体素化, 剔除空体素对应的探针.

遍历表面对应的LOD 0探针的纹素, 作为解析面光通过LTC计算贡献, 执行功率重要性抽样, 逐级查询父级纹素LTC并抽样. 令v\mathbf{v}为几何顶点, 面光辐照度如下:

E=12πi=1marccos(vivj)vi×vjvi×vjn,j=(i+1)modm \begin{equation} E = \frac{1}{2\pi}\sum_{i=1}^m \arccos(\mathbf{v}_i \cdot \mathbf{v}_j) \frac{\mathbf{v}_i \times \mathbf{v}_j}{|\mathbf{v}_i \times \mathbf{v}_j|} \cdot \mathbf{n}, \quad j = (i + 1) \bmod m \end{equation}

使用三参数LTC以减少计算量:

M1=(a0b01000c),a,b,c[0,1] \begin{equation} M^{-1} = \begin{pmatrix} a & 0 & b\\ 0 & 1 & 0\\ 0 & 0 & c \end{pmatrix}, \quad a, b, c \in [0, 1] \end{equation}

MCPG
#

基于混合vMF估计分布, 链状态为单个波瓣, 存于多分辨率哈希网格, 同时有均匀静态网格保证LOD边界的状态交换. 基于三线性权重抽取NmcN_\mathrm{mc}个候选顶点, 以亮度为权重执行RIS.

fmcf_\mathrm{mc}为当前样本入射亮度估计, 路径尾部查询辐照度缓存, 接受概率如下, 分母可加速预热:

paccept=min(fmcsummc/Nmc,1) \begin{equation} p_\mathrm{accept} = \min\left(\frac{f_\mathrm{mc}}{\mathrm{sum}_\mathrm{mc}/N_\mathrm{mc}}, 1\right) \end{equation}

以最大似然估计更新状态, 混合因子α=max(1N,αmin)\alpha = \max(\frac{1}{N}, \alpha_\mathrm{min}). 更新后抽样写回位置, 读写两侧的随机访问使状态扩散. 转移步骤不满足细致平衡, 稳态分布不保证收敛到目标分布.

NASGPG
#

归一化各向异性球面高斯(NASG)基于正交坐标系[x,y,z][\mathbf{x}, \mathbf{y}, \mathbf{z}]定义, z\mathbf{z}为波瓣轴, λ\lambda为锐度, aa为各向异性, a=0a = 0时退化为球面高斯. 记u=vz+12u = \frac{\mathbf{v} \cdot \mathbf{z} + 1}{2}, e=a(vx)21(vz)2e = \frac{a(\mathbf{v} \cdot \mathbf{x})^2}{1 - (\mathbf{v} \cdot \mathbf{z})^2}, 形式如下:

G(v;[x,y,z],λ,a)={exp(2λu1+e2λ)ue, v±z1, v=z0, v=z \begin{equation} G(\mathbf{v};[\mathbf{x}, \mathbf{y}, \mathbf{z}], \lambda, a) = \begin{cases} \begin{aligned} &\exp\left(2\lambda u^{1 + e} - 2\lambda\right)u^e, &\ \mathbf{v} \neq \pm\mathbf{z}\\ &1, &\ \mathbf{v} = \mathbf{z}\\ &0, &\ \mathbf{v} = -\mathbf{z} \end{aligned} \end{cases} \end{equation}

ueu^e为球坐标换元的Jacobian, 因此NASG有闭式积分, 可归一化:

K=S2G(v;[x,y,z],λ,a)dω=2π(1e2λ)λ1+a \begin{equation} K = \int_{\mathcal{S}^2} G(\mathbf{v};[\mathbf{x}, \mathbf{y}, \mathbf{z}], \lambda, a)\mathrm{d}\omega = \frac{2\pi(1 - e^{-2\lambda})}{\lambda\sqrt{1 + a}} \end{equation}

正交坐标系以欧拉角θ,ϕ,τ\theta, \phi, \tau参数化, y=z×x\mathbf{y} = \mathbf{z} \times \mathbf{x}, 单个NASG分量只需cosθ\cos\theta, sinϕ\sin\phi, cosϕ\cos\phi, sinτ\sin\tau, cosτ\cos\tau, λ\lambda, aa七个标量表示:

z=(cosϕsinθsinϕsinθcosθ),x=(cosθcosϕcosτsinϕsinτcosθsinϕcosτ+cosϕsinτsinθcosτ) \begin{equation} \mathbf{z} = \begin{pmatrix} \cos\phi\sin\theta\\ \sin\phi\sin\theta\\ \cos\theta \end{pmatrix}, \quad \mathbf{x} = \begin{pmatrix} \cos\theta\cos\phi\cos\tau - \sin\phi\sin\tau\\ \cos\theta\sin\phi\cos\tau + \cos\phi\sin\tau\\ -\sin\theta\cos\tau \end{pmatrix} \end{equation}

神经网络为4层128宽无偏置MLP, 输入为p\mathbf{p}, ωo\omega_o, n\mathbf{n}, p\mathbf{p}归一化后应用one-blob编码, 即分为kk个等宽区间, 每个区间对应σ=1k\sigma = \frac{1}{k}的高斯核, 执行积分:

ob(x)i=i1kik12πσe(tx)22σ2dt,i=1,,k \begin{equation} \text{ob}(x)_i = \int_{\frac{i - 1}{k}}^{\frac{i}{k}} \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(t - x)^2}{2\sigma^2}}\mathrm{d}t, \quad i = 1, \dots, k \end{equation}

输出为8N+18N + 1维, N为NASG分量数量, 8为NASG7个标量与其权重AA, 1为MIS抽样概率cc. 引导分布为归一化分量的混合, 与BSDF按cc做MIS:

q^(ωi)=cq(ωi)+(1c)pf(ωi)=ck=1NAkGk(ωi)Kk+(1c)pf(ωi) \begin{equation} \begin{aligned} \hat{q}(\omega_i) &= cq(\omega_i) + (1 - c)p_f(\omega_i)\\ &= c\sum_{k=1}^N A_k\frac{G_k(\omega_i)}{K_k} + (1 - c)p_f(\omega_i) \end{aligned} \end{equation}

以KL散度衡量qq与目标分布p(ωi)=Cf(p,ωo,ωi)Li(p,ωi)cosθp(\omega_i) = Cf(\mathbf{p}, \omega_o, \omega_i)L_i(\mathbf{p}, \omega_i)|\cos\theta|的差异, 令γ\gamma为NASG参数, ppγ\gamma无关, 梯度如下:

γDKL(pq)=γS2p(ωi)(logp(ωi)logq(ωi;γ))dωi=S2p(ωi)γlogq(ωi;γ)dωi \begin{equation} \begin{aligned} \nabla_\gamma D_{KL}(p\|q) &= \nabla_\gamma\int_{\mathcal{S}^2} p(\omega_i)(\log p(\omega_i) - \log q(\omega_i;\gamma))\mathrm{d}\omega_i\\ &= -\int_{\mathcal{S}^2} p(\omega_i)\nabla_\gamma\log q(\omega_i;\gamma)\mathrm{d}\omega_i \end{aligned} \end{equation}

基于q^\hat{q}得单样本估计. 归一化常数CC未知, 但只对梯度整体缩放, Adam归一化矩后可约去:

γDKL(pq)p(ωi)q^(ωi)γlogq(ωi;γ) \begin{equation} \nabla_\gamma D_{KL}(p\|q) \approx -\frac{p(\omega_i)}{\hat{q}(\omega_i)}\nabla_\gamma\log q(\omega_i;\gamma) \end{equation}

DKL(pq)D_{KL}(p\|q)cc无关, DKL(pq^)D_{KL}(p\|\hat{q})可对cc求导, 但只优化q^\hat{q}cc会倾向0, 因为初始qq质量较差. 因此以DKL(pq)D_{KL}(p\|q)为主项保证qq持续更新, 混入DKL(pq^)D_{KL}(p\|\hat{q})以学习cc, e=0.2e = 0.2:

loss=eDKL(pq^)+(1e)DKL(pq) \begin{equation} \text{loss} = eD_{KL}(p\|\hat{q}) + (1 - e)D_{KL}(p\|q) \end{equation}

NPMPG
#

使用神经网络隐式表示场景, 以Φ\Phi为可训练参数, 连续地将位置映射为vMF混合参数:

NPM(xΦ)=Θ^(x),V(ωiΘ^(x))Li(x,ωi) \begin{equation} \text{NPM}(\mathbf{x}\mid\Phi) = \hat{\Theta}(\mathbf{x}), \quad \mathcal{V}(\omega_i\mid\hat{\Theta}(\mathbf{x})) \propto L_i(\mathbf{x}, \omega_i) \end{equation}

使用可训练多分辨率空间编码处理高频, 定义LL级均匀LOD网格, 体素存FF维特征, 查询时拼接各层的三线性插值结果得到G(x)G(\mathbf{x}):

G(xΦE)=l=1Ltrilinear(x,Vl[x]) \begin{equation} G(\mathbf{x}\mid\Phi_E) = \bigoplus_{l=1}^L \text{trilinear}(\mathbf{x}, V_l[\mathbf{x}]) \end{equation}

MLP为3层64宽ReLU, 输出KK个vMF. κ,λ,θ,ϕ\kappa', \lambda', \theta', \phi'为原始输出, (θ,ϕ)(\theta, \phi)μ\mu的归一化球坐标:

κi=exp(κi),λi=exp(λi)j=1Kexp(λj)θi=11+exp(θi),ϕi=11+exp(ϕi) \begin{equation} \begin{aligned} \kappa_i = \exp(\kappa_i'), \quad \lambda_i = \frac{\exp(\lambda_i')}{\sum_{j=1}^K\exp(\lambda_j')}\\ \theta_i = \frac{1}{1 + \exp(-\theta_i')}, \quad \phi_i = \frac{1}{1 + \exp(-\phi_i')} \end{aligned} \end{equation}

以KL散度为目标做小批量随机梯度下降. 令DLi\mathcal{D} \propto L_i为目标分布, 路径顶点更新附近体素, p~\tilde{p}为BSDF与引导分布组合的实际抽样分布, 梯度估计如下:

ΘDKL(DV;Θ)=ΘΩD(ω)logD(ω)V(ωΘ^)dωΘ1Nj=1ND(ωj)p~(ωjΘ^)logD(ωj)V(ωjΘ^)=1Nj=1ND(ωj)ΘV(ωjΘ^)p~(ωjΘ^)V(ωjΘ^) \begin{equation} \begin{aligned} \nabla_\Theta D_{KL}(\mathcal{D}\|\mathcal{V};\Theta) &= \nabla_\Theta\int_\Omega \mathcal{D}(\omega)\log\frac{\mathcal{D}(\omega)}{\mathcal{V}(\omega\mid\hat{\Theta})}\mathrm{d}\omega\\ &\approx \nabla_\Theta\frac{1}{N}\sum_{j=1}^N\frac{\mathcal{D}(\omega_j)}{\tilde{p}(\omega_j\mid\hat{\Theta})}\log\frac{\mathcal{D}(\omega_j)}{\mathcal{V}(\omega_j\mid\hat{\Theta})}\\ &= -\frac{1}{N}\sum_{j=1}^N\frac{\mathcal{D}(\omega_j)\nabla_\Theta\mathcal{V}(\omega_j\mid\hat{\Theta})}{\tilde{p}(\omega_j\mid\hat{\Theta})\mathcal{V}(\omega_j\mid\hat{\Theta})} \end{aligned} \end{equation}

学习完整被积函数时额外输入ωo\omega_o, 目标分布改为fsLicosθif_s L_i\cos\theta_i, 余弦项以固定vMF波瓣近似. n\mathbf{n}与粗糙度rr作为辅助特征输入, ωo\omega_on\mathbf{n}使用球谐编码.

Radiance Cache
#

辐射度缓存在探针中存储辐射度, 命中后直接查询缓存, 因此有偏.

ORCA
#

根据BSDF抽样概率和粗糙度决定舍弃概率, 根据预算归一化以避免光滑场景光线超支:

si=bsii=1Nsi \begin{equation} s'_i=\frac{b s_i}{\sum_{i=1}^N s_i} \end{equation}

稀疏光线完整追踪, 根据第二次弹射顶点信息计算hash, 更新最细LOD体素的累积辐亮度, LOD与相机距离相关. 下采样以更新LOD体素, 其余光线单次弹射并查询缓存, 模拟重连接. 只用本帧数据, 不做时域累积.

SHARC
#

依据世界空间顶点和LOD计算hash, 因此跨帧hash一致, 体素辐亮度逐帧累积.

NRC
#

单个MLP缓存散射辐亮度Ls(x,ω)L_s(\mathbf{x}, \omega), 路径足迹足够大时误差被模糊, 令pp为BSDF抽样概率, θ1\theta_1为主顶点处视线与法线夹角, c=0.01c = 0.01, 路径足迹定义如下:

a(x1xn)=(i=2nxi1xi2p(ωixi1,ω)cosθi)2a0=x0x124πcosθ1,a>ca0 \begin{equation} \begin{aligned} &a(\mathbf{x}_1 \cdots \mathbf{x}_n) = \left(\sum_{i=2}^n\sqrt{\frac{\|\mathbf{x}_{i-1} - \mathbf{x}_i\|^2}{p(\omega_i\mid\mathbf{x}_{i-1}, \omega)|\cos\theta_i|}}\right)^2\\ &a_0 = \frac{\|\mathbf{x}_0 - \mathbf{x}_1\|^2}{4\pi\cos\theta_1}, \quad a > ca_0 \end{aligned} \end{equation}

屏幕分块后每块抽样一条路径更新缓存, 高学习率与每帧多步导致闪烁, 因此推理时使用权重的指数移动平均, α=0.99\alpha = 0.99, ηt\eta_t修正初期偏差, 不反馈到训练:

Wˉt=1αηtWt+αηt1Wˉt1,ηt=1αt \begin{equation} \bar{W}_t = \frac{1 - \alpha}{\eta_t}W_t + \alpha\eta_{t-1}\bar{W}_{t-1}, \quad \eta_t = 1 - \alpha^t \end{equation}

MLP为7层64宽无偏置, 输出RGB. ω\omega, n\mathbf{n}转球坐标, 与1er1 - e^{-r}一同做4区间one-blob编码, 漫反射与镜面反射率α\alpha, β\beta直接输入. 位置微小变化引起辐亮度剧变, 改用频率编码:

freq(x)=(sin(20πx),sin(21πx),,sin(211πx)) \begin{equation} \text{freq}(x) = \left(\sin(2^0\pi x), \sin(2^1\pi x), \dots, \sin(2^{11}\pi x)\right) \end{equation}

MLP输出乘α+β\alpha + \beta得到近似出射辐射度. 由于LsL_s为无偏估计量, 使用相对L2损失保证梯度无偏, sg\text{sg}为停止梯度, 损失函数如下:

L2(Ls,L^s)=(LsL^s)2sg(L^s)2+ϵ \begin{equation} \mathcal{L}_2(L_s, \hat{L}_s) = \frac{(L_s - \hat{L}_s)^2}{\text{sg}(\hat{L}_s)^2 + \epsilon} \end{equation}

Markov Chain
#

Metropolis-Hastings
#

xk\mathbf{x}_k为顶点数为kk的路径, pip_iXiX_i的密度, 转移函数K(xy)K(\mathbf{x} \to \mathbf{y})x\mathbf{x}转移至y\mathbf{y}的概率密度, 满足k=1ykK(xyk)dyk=1\sum_{k=1}^\infty\int_{\mathbf{y}_k} K(\mathbf{x} \to \mathbf{y}_k)\mathrm{d}\mathbf{y}_k = 1, Markov链的演化如下:

pi(x)=k=1ykK(ykx)pi1(yk)dyk \begin{equation} p_i(\mathbf{x}) = \sum_{k=1}^\infty\int_{\mathbf{y}_k} K(\mathbf{y}_k \to \mathbf{x})p_{i-1}(\mathbf{y}_k)\mathrm{d}\mathbf{y}_k \end{equation}

稳态分布(stationary distribution)pp_\infty为不动点即pi=pi1p_i = p_{i-1}. Metropolis-Hastings以提议密度T(xy)T(\mathbf{x} \to \mathbf{y})生成候选, 以接受概率a(xy)a(\mathbf{x} \to \mathbf{y})决定是否接受:

pi(x)=pi1(x)(1k=1ykT(xyk)a(xyk)dyk)+k=1ykpi1(yk)T(ykx)a(ykx)dyk \begin{equation} p_i(\mathbf{x}) = p_{i-1}(\mathbf{x})(1 - \sum_{k=1}^\infty\int_{\mathbf{y}_k} T(\mathbf{x} \to \mathbf{y}_k)a(\mathbf{x} \to \mathbf{y}_k)\mathrm{d}\mathbf{y}_k) + \sum_{k=1}^\infty\int_{\mathbf{y}_k} p_{i-1}(\mathbf{y}_k)T(\mathbf{y}_k \to \mathbf{x})a(\mathbf{y}_k \to \mathbf{x})\mathrm{d}\mathbf{y}_k \end{equation}

给定目标分布p^\hat{p}, 细致平衡(detailed balance)条件如下:

p^(x)T(xy)a(xy)=p^(y)T(yx)a(yx) \begin{equation} \hat{p}(\mathbf{x})T(\mathbf{x} \to \mathbf{y})a(\mathbf{x} \to \mathbf{y}) = \hat{p}(\mathbf{y})T(\mathbf{y} \to \mathbf{x})a(\mathbf{y} \to \mathbf{x}) \end{equation}

归一化常数p^=k=1xkp^(xk)dxk\|\hat{p}\| = \sum_{k=1}^\infty\int_{\mathbf{x}_k} \hat{p}(\mathbf{x}_k)\,\mathrm{d}\mathbf{x}_k, 设pi1=p^p^p_{i-1} = \frac{\hat{p}}{\|\hat{p}\|}, 代入演化得p^p^\frac{\hat{p}}{\|\hat{p}\|}为不动点:

pi(x)=pi1(x)1p^k=1yk(p^(x)T(xyk)a(xyk)p^(yk)T(ykx)a(ykx))dyk=pi1(x) \begin{equation} \begin{aligned} p_i(\mathbf{x}) &= p_{i-1}(\mathbf{x}) - \frac{1}{\|\hat{p}\|}\sum_{k=1}^\infty\int_{\mathbf{y}_k}( \hat{p}(\mathbf{x})T(\mathbf{x} \to \mathbf{y}_k)a(\mathbf{x} \to \mathbf{y}_k) - \hat{p}(\mathbf{y}_k)T(\mathbf{y}_k \to \mathbf{x})a(\mathbf{y}_k \to \mathbf{x}) )\mathrm{d}\mathbf{y}_k\\ &= p_{i-1}(\mathbf{x}) \end{aligned} \end{equation}

按如下方式定义aa, 使得较大的p^(x)T(xy)\hat{p}(\mathbf{x})T(\mathbf{x} \to \mathbf{y})总是被接受:

a(xy)=min(1,p^(y)T(yx)p^(x)T(xy)) \begin{equation} a(\mathbf{x} \to \mathbf{y}) = \min(1, \frac{\hat{p}(\mathbf{y})T(\mathbf{y} \to \mathbf{x})}{\hat{p}(\mathbf{x})T(\mathbf{x} \to \mathbf{y})}) \end{equation}

不动点不蕴含唯一性, 例如取Ω={1,2,3}\Omega = \{1, 2, 3\}, 转移矩阵行为起点列为终点:

K=[1212012120001] K = \begin{bmatrix} \frac{1}{2} & \frac{1}{2} & 0\\ \frac{1}{2} & \frac{1}{2} & 0\\ 0 & 0 & 1 \end{bmatrix}

p0=(α,β,γ)p_0 = (\alpha, \beta, \gamma), 一步后即为不动点, 可见不动点与初始状态相关:

p1=(α+β2,α+β2,γ) p_1 = \left(\frac{\alpha + \beta}{2}, \frac{\alpha + \beta}{2}, \gamma\right)

从任意x\mathbf{x}出发均能在有限步内到达任何p^>0\hat{p} > 0的区域则不动点唯一. 若满足细致平衡, 已知p0=p^p^p_0 = \frac{\hat{p}}{\|\hat{p}\|}不动点为p^p^\frac{\hat{p}}{\|\hat{p}\|}, 因此任意初值均收敛到它:

limipi=p^p^ \begin{equation} \lim_{i \to \infty}p_i = \frac{\hat{p}}{\|\hat{p}\|} \end{equation}

Metropolis Light Transport
#

基于BDPT实现MLT, 令p0p_0为BDPT的PDF, 初始权重W0=p^(X0)p0(X0)W_0 = \frac{\hat{p}(X_0)}{p_0(X_0)}, 变异保持Wi=Wi1W_i = W_{i-1}, 记ρi(w,x)\rho_i(w, \mathbf{x})(Wi,Xi)(W_i, X_i)的联合密度, 加权均衡条件(weighted equilibrium condition)如下:

Rwρi(w,x)dw=p^(x) \begin{equation} \int_\mathbb{R} w\,\rho_i(w, \mathbf{x})\,\mathrm{d}w = \hat{p}(\mathbf{x}) \end{equation}

i=0i = 0W0W_0X0X_0确定, ρ0(w,x)=δ(wp^(x)p0(x))p0(x)\rho_0(w, \mathbf{x}) = \delta(w - \frac{\hat{p}(\mathbf{x})}{p_0(\mathbf{x})})p_0(\mathbf{x}), 代入直接满足. 变异与WW无关, 故ρi\rho_ipip_i的演化相同:

ρi(w,x)=ρi1(w,x)(1k=1ykT(xyk)a(xyk)dyk)+k=1ykρi1(w,yk)T(ykx)a(ykx)dyk \begin{equation} \rho_i(w, \mathbf{x}) = \rho_{i-1}(w, \mathbf{x})(1 - \sum_{k=1}^\infty\int_{\mathbf{y}_k} T(\mathbf{x} \to \mathbf{y}_k)a(\mathbf{x} \to \mathbf{y}_k)\mathrm{d}\mathbf{y}_k) + \sum_{k=1}^\infty\int_{\mathbf{y}_k} \rho_{i-1}(w, \mathbf{y}_k)T(\mathbf{y}_k \to \mathbf{x})a(\mathbf{y}_k \to \mathbf{x})\mathrm{d}\mathbf{y}_k \end{equation}

两侧乘ww并对ww积分, 基于加权均衡条件与细致平衡可得:

Rwρi(w,x)dw=p^(x)k=1yk(p^(x)T(xyk)a(xyk)p^(yk)T(ykx)a(ykx))dyk=p^(x) \begin{equation} \begin{aligned} \int_\mathbb{R} w\,\rho_i(w, \mathbf{x})\,\mathrm{d}w &= \hat{p}(\mathbf{x}) - \sum_{k=1}^\infty\int_{\mathbf{y}_k}( \hat{p}(\mathbf{x})T(\mathbf{x} \to \mathbf{y}_k)a(\mathbf{x} \to \mathbf{y}_k) - \hat{p}(\mathbf{y}_k)T(\mathbf{y}_k \to \mathbf{x})a(\mathbf{y}_k \to \mathbf{x}) )\mathrm{d}\mathbf{y}_k\\ &= \hat{p}(\mathbf{x}) \end{aligned} \end{equation}

hh为滤波器权重, IjI_j为像素jj的真值, 可验证无偏:

E[Wihj(Xi)]=k=1xkRwhj(xk)ρi(w,xk)dwdxk=k=1xkhj(xk)p^(xk)dxk=Ij \begin{equation} \begin{aligned} E[W_i h_j(X_i)] &= \sum_{k=1}^\infty\int_{\mathbf{x}_k}\int_\mathbb{R} w\,h_j(\mathbf{x}_k)\rho_i(w, \mathbf{x}_k)\,\mathrm{d}w\,\mathrm{d}\mathbf{x}_k\\ &= \sum_{k=1}^\infty\int_{\mathbf{x}_k} h_j(\mathbf{x}_k)\hat{p}(\mathbf{x}_k)\,\mathrm{d}\mathbf{x}_k\\ &= I_j \end{aligned} \end{equation}

ReSTIR MCMC
#

添加MCMC后的无偏权重如下:

Wi=p^(Xi1)p^(Xi)Wi1=p^(X0)p^(Xi)W0 \begin{equation} W_i = \frac{\hat{p}(X_{i-1})}{\hat{p}(X_i)}W_{i-1} = \frac{\hat{p}(X_0)}{\hat{p}(X_i)}W_0 \end{equation}

归纳证明WiW_i无偏, 基于GRIS已知W0W_0无偏, 设Wi1W_{i-1}无偏, 记候选Zi1T(Xi1)Z_{i-1} \sim T(X_{i-1} \to \cdot):

E[f(Xi)Wi]= E[(1a(Xi1Zi1))f(Xi1)Wi1]+E[a(Xi1Zi1)f(Zi1)p^(Xi1)p^(Zi1)Wi1]= E[f(Xi1)Wi1]+E[f(Zi1)a(Xi1Zi1)p^(Xi1)p^(Zi1)Wi1]E[f(Xi1)a(Xi1Zi1)Wi1] \begin{equation} \begin{aligned} E[f(X_i)W_i] =\ & E[(1 - a(X_{i-1} \to Z_{i-1}))f(X_{i-1})W_{i-1}] + E[a(X_{i-1} \to Z_{i-1})f(Z_{i-1})\frac{\hat{p}(X_{i-1})}{\hat{p}(Z_{i-1})}W_{i-1}]\\ =\ & E[f(X_{i-1})W_{i-1}] + E[f(Z_{i-1})a(X_{i-1} \to Z_{i-1})\frac{\hat{p}(X_{i-1})}{\hat{p}(Z_{i-1})}W_{i-1}] - E[f(X_{i-1})a(X_{i-1} \to Z_{i-1})W_{i-1}] \end{aligned} \end{equation}

后两项含候选Zi1Z_{i-1}, 消去它才能归纳. Wi1W_{i-1}仅依赖Xi1X_{i-1}, 可从条件期望中作为常数提出:

E[g(Xi1,Zi1)Wi1]=E[E[g(Xi1,Zi1)Wi1Fi1]]=E[Wi1E[g(Xi1,Zi1)Fi1]]=E[(Ωg(Xi1,z)T(Xi1z)dz)Wi1] \begin{equation} \begin{aligned} E[g(X_{i-1}, Z_{i-1})W_{i-1}] &= E\big[E[g(X_{i-1}, Z_{i-1})W_{i-1}|\mathcal{F}_{i-1}]\big]\\ &= E\big[W_{i-1}E[g(X_{i-1}, Z_{i-1})|\mathcal{F}_{i-1}]\big]\\ &= E\left[\left(\int_\Omega g(X_{i-1}, \mathbf{z})T(X_{i-1} \to \mathbf{z})\mathrm{d}\mathbf{z}\right)W_{i-1}\right] \end{aligned} \end{equation}

此时仅与Xi1X_{i-1}有关, 代入即得二重积分:

E[f(Xi)Wi]=Ωf(x)dx+ΩΩf(z)a(xz)p^(x)p^(z)T(xz)dzdxΩΩf(x)a(xz)T(xz)dzdx \begin{equation} \begin{aligned} E[f(X_i)W_i] &= \int_\Omega f(\mathbf{x})\mathrm{d}\mathbf{x}\\ &+ \int_\Omega\int_\Omega f(\mathbf{z})a(\mathbf{x} \to \mathbf{z})\frac{\hat{p}(\mathbf{x})}{\hat{p}(\mathbf{z})}T(\mathbf{x} \to \mathbf{z})\mathrm{d}\mathbf{z}\mathrm{d}\mathbf{x}\\ &- \int_\Omega\int_\Omega f(\mathbf{x})a(\mathbf{x} \to \mathbf{z})T(\mathbf{x} \to \mathbf{z})\mathrm{d}\mathbf{z}\mathrm{d}\mathbf{x} \end{aligned} \end{equation}

改写细致平衡, 可抵消后两项, 即估计无偏:

T(xz)a(xz)=p^(z)p^(x)T(zx)a(zx) \begin{equation} T(\mathbf{x} \to \mathbf{z})a(\mathbf{x} \to \mathbf{z}) = \frac{\hat{p}(\mathbf{z})}{\hat{p}(\mathbf{x})}T(\mathbf{z} \to \mathbf{x})a(\mathbf{z} \to \mathbf{x}) \end{equation}

变异为对ui1\mathbf{u}_{i-1}做高斯扰动, 即jij \neq ipjy=pjx\mathbf{p}^y_j = \mathbf{p}^x_j, 只需变换u{i1,i,i+1}\mathbf{u}_{\{i - 1, i, i + 1\}}. p{i+1,i+2}y\mathbf{p}^y_{\{i+1, i+2\}}固定在p{i+1,i+2}x\mathbf{p}^x_{\{i+1, i+2\}}, 以变异后的前缀p{0,,i}y\mathbf{p}^y_{\{0, \dots, i\}}为条件可得条件密度:

p(p{i+1,i+2}yp{0,,i}y)=δ(pi+1ypi+1x)δ(pi+2ypi+2x) \begin{equation} p(\mathbf{p}^y_{\{i+1, i+2\}}|\mathbf{p}^y_{\{0, \dots, i\}}) = \delta(\mathbf{p}^y_{i+1} - \mathbf{p}^x_{i+1})\delta(\mathbf{p}^y_{i+2} - \mathbf{p}^x_{i+2}) \end{equation}

aa需要提议密度比值, ui1\mathbf{u}_{i-1}的密度只与ui1xui1y|\mathbf{u}^x_{i-1} - \mathbf{u}^y_{i-1}|有关, 在比值中约去. u{i,i+1}y\mathbf{u}^y_{\{i, i+1\}}的密度为上式的变换p(p{i+1,i+2}yp{0,,i}y)p{i+1,i+2}yu{i,i+1}yp(\mathbf{p}^y_{\{i+1, i+2\}}|\mathbf{p}^y_{\{0, \dots, i\}})\left|\frac{\partial\mathbf{p}^y_{\{i+1, i+2\}}}{\partial\mathbf{u}^y_{\{i, i+1\}}}\right|, Dirac delta函数同样约去, 此时可得:

T(yx)T(xy)=p{i+1,i+2}xu{i,i+1}xp{i+1,i+2}yu{i,i+1}y=u{i,i+1}yω{i,i+1}yω{i,i+1}yp{i+1,i+2}yp{i+1,i+2}xω{i,i+1}xω{i,i+1}xu{i,i+1}x=pyi(ωiy)G(piypi+1x)pxi(ωix)G(pixpi+1x)pyi+1(ωi+1y)pxi+1(ωi+1x)=Jxy \begin{equation} \begin{aligned} \frac{T(\mathbf{y} \to \mathbf{x})}{T(\mathbf{x} \to \mathbf{y})} &= \frac{\left|\frac{\partial\mathbf{p}^x_{\{i+1, i+2\}}}{\partial\mathbf{u}^x_{\{i, i+1\}}}\right|}{\left|\frac{\partial\mathbf{p}^y_{\{i+1, i+2\}}}{\partial\mathbf{u}^y_{\{i, i+1\}}}\right|}\\ &= \left|\frac{\partial\mathbf{u}^y_{\{i, i+1\}}}{\partial\omega^y_{\{i, i+1\}}}\right| \left|\frac{\partial\omega^y_{\{i, i+1\}}}{\partial\mathbf{p}^y_{\{i+1, i+2\}}}\right| \left|\frac{\partial\mathbf{p}^x_{\{i+1, i+2\}}}{\partial\omega^x_{\{i, i+1\}}}\right| \left|\frac{\partial\omega^x_{\{i, i+1\}}}{\partial\mathbf{u}^x_{\{i, i+1\}}}\right|\\ &= \frac{p_{y_i}(\omega^y_i)G(\mathbf{p}^y_i \to \mathbf{p}^x_{i+1})}{p_{x_i}(\omega^x_i)G(\mathbf{p}^x_i \to \mathbf{p}^x_{i+1})}\frac{p_{y_{i+1}}(\omega^y_{i+1})}{p_{x_{i+1}}(\omega^x_{i+1})}\\ &= J_{\mathbf{x} \to \mathbf{y}} \end{aligned} \end{equation}

重连接后ui1\mathbf{u}_{i-1}为隐式, 需要BSDF抽样可逆即由ωi1x\omega^x_{i-1}恢复ui1x\mathbf{u}^x_{i-1}. 若以对称核k(ωi1x,ωi1y)k(\omega^x_{i-1}, \omega^y_{i-1})扰动立体角, 变换到ui1\mathbf{u}_{i-1}后为k(ωi1x,ωi1y)ωi1yui1y=k(ωi1x,ωi1y)pyi1(ωi1y)k(\omega^x_{i-1}, \omega^y_{i-1})\left|\frac{\partial\omega^y_{i-1}}{\partial\mathbf{u}^y_{i-1}}\right| = \frac{k(\omega^x_{i-1}, \omega^y_{i-1})}{p_{y_{i-1}}(\omega^y_{i-1})}, 此时比值变为:

T(yx)T(xy)=pyi1(ωi1y)pxi1(ωi1x)Jxy \begin{equation} \frac{T(\mathbf{y} \to \mathbf{x})}{T(\mathbf{x} \to \mathbf{y})} = \frac{p_{y_{i-1}}(\omega^y_{i-1})}{p_{x_{i-1}}(\omega^x_{i-1})}J_{\mathbf{x} \to \mathbf{y}} \end{equation}

pi+2=pe\mathbf{p}_{i+2} = \mathbf{p}_e时, pi+1pe\mathbf{p}_{i+1} \to \mathbf{p}_e确定, ui+1\mathbf{u}_{i+1}不存在, 去除ui+1\mathbf{u}_{i+1}的变换:

T(yx)T(xy)=pyi1(ωi1y)pxi1(ωi1x)pyi(ωiy)G(piypi+1x)pxi(ωix)G(pixpi+1x) \begin{equation} \frac{T(\mathbf{y} \to \mathbf{x})}{T(\mathbf{x} \to \mathbf{y})} = \frac{p_{y_{i-1}}(\omega^y_{i-1})}{p_{x_{i-1}}(\omega^x_{i-1})} \frac{p_{y_i}(\omega^y_i)G(\mathbf{p}^y_i \to \mathbf{p}^x_{i+1})}{p_{x_i}(\omega^x_i)G(\mathbf{p}^x_i \to \mathbf{p}^x_{i+1})} \end{equation}

pi+1=pe\mathbf{p}_{i+1} = \mathbf{p}_e时, pipe\mathbf{p}_i \to \mathbf{p}_e确定, ui\mathbf{u}_i不存在, 提议只包含ui1\mathbf{u}_{i-1}的变换:

T(yx)T(xy)=pyi1(ωi1y)pxi1(ωi1x) \begin{equation} \frac{T(\mathbf{y} \to \mathbf{x})}{T(\mathbf{x} \to \mathbf{y})} = \frac{p_{y_{i-1}}(\omega^y_{i-1})}{p_{x_{i-1}}(\omega^x_{i-1})} \end{equation}

Correlated Sampling
#

Control Variates
#

控制变量引入与ff相关的辅助函数hh, 积分H=Ωxh(x)dxH = \int_{\Omega_x} h(\mathbf{x})\mathrm{d}\mathbf{x}已知, 可改写估计量:

Ix=αH+(f(X)αh(X))WX \begin{equation} \langle I_x \rangle = \alpha H + \left(f(X) - \alpha h(X)\right)W_X \end{equation}

图像空间控制变量以相邻像素yy为辅助函数, 要求IyI_y可低方差估计, 估计量如下:

Ixy=αIy+IxαIy \begin{equation} \langle I_x \rangle_{\leftarrow y} = \alpha\langle I_y \rangle + \langle I_x - \alpha I_y \rangle \end{equation}

A=f(X)WXA = f(X)W_X, B=f(Y)WYB = f(Y)W_Y, 分别无偏估计IxI_xIyI_y, AαBA - \alpha B的方差为:

Var[AαB]=Var[A]+α2Var[B]2αCov[A,B] \begin{equation} \mathrm{Var}[A - \alpha B] = \mathrm{Var}[A] + \alpha^2\mathrm{Var}[B] - 2\alpha\mathrm{Cov}[A, B] \end{equation}

α\alpha求导得最优系数, 令AA, BB的相关系数为ρ=Cov[A,B]Var[A]Var[B]\rho = \frac{\mathrm{Cov}[A,B]}{\sqrt{\mathrm{Var}[A]\mathrm{Var}[B]}}, 代回得方差缩减与ρ\rho相关:

α=Cov[A,B]Var[B],Var[AαB]=(1ρ2)Var[A] \begin{equation} \alpha^* = \frac{\mathrm{Cov}[A, B]}{\mathrm{Var}[B]}, \quad \mathrm{Var}[A - \alpha^* B] = (1 - \rho^2)\mathrm{Var}[A] \end{equation}

XXYY独立则Cov[A,B]=0\mathrm{Cov}[A, B] = 0, 任意α0\alpha \neq 0均使方差增加. 对于αIy+(AαB)\alpha\langle I_y \rangle + (A - \alpha B), 若Iy\langle I_y \rangleBB则退化为AA; 若为独立样本BB', 方差为Var[A]+α2(Var[B]+Var[B])\mathrm{Var}[A] + \alpha^2(\mathrm{Var}[B] + \mathrm{Var}[B']). 两种情况都不低于Var[A]\mathrm{Var}[A], 因此独立样本无法缩减方差, XXYY必须相关.

Y=Txy(X)Y = T_{x \to y}(X), 场景连续处f(x)f(Txy(x))f(\mathbf{x}) \approx f(T_{x \to y}(\mathbf{x})), 此时ρ1\rho \to 1.

IxαIy=Ωxf(x)dxαΩyf(y)dy=Ωx(f(x)αf(Txy(x))Jxy)dxαΩyTxy(Ωx)f(y)dy \begin{equation} \begin{aligned} I_x - \alpha I_y &= \int_{\Omega_x} f(\mathbf{x})\mathrm{d}\mathbf{x} - \alpha\int_{\Omega_y} f(\mathbf{y})\mathrm{d}\mathbf{y}\\ &= \int_{\Omega_x} \left(f(\mathbf{x}) - \alpha f(T_{x \to y}(\mathbf{x}))J_{\mathbf{x} \to \mathbf{y}}\right)\mathrm{d}\mathbf{x} - \alpha\int_{\Omega_y \setminus T_{x \to y}(\Omega_x)} f(\mathbf{y})\mathrm{d}\mathbf{y} \end{aligned} \end{equation}

不保证Txy(Ωx)ΩyT_{x \to y}(\Omega_x) \supseteq \Omega_y, 需要MIS:

IxαIy=mx(X)(f(X)αf(Txy(X))JXY)WX+ my(Y)(f(Tyx(Y))JYXαf(Y))WY \begin{equation} \begin{aligned} \langle I_x - \alpha I_y \rangle &= m_x(X)\left(f(X) - \alpha f(T_{x \to y}(X))J_{X \to Y}\right)W_X\\ &+\ m_y(Y)\left(f(T_{y \to x}(Y))J_{Y \to X} - \alpha f(Y)\right)W_Y \end{aligned} \end{equation}

ReSTCV
#

xx重投影到yy, XX为当前帧新样本, Ixinit=f(X)WX\langle I_x \rangle_\mathrm{init} = f(X)W_X. 时域估计为:

Ix=MyIxy+MinitIxinitMy+Minit \begin{equation} \langle I_x \rangle = \frac{M_y\langle I_x \rangle_{\leftarrow y} + M_\mathrm{init}\langle I_x \rangle_\mathrm{init}}{M_y + M_\mathrm{init}} \end{equation}

N(x)\mathcal{N}(x)为包含xx自身的空域像素集合, 空域估计为:

Ix=yN(x)MyIxyyN(x)My \begin{equation} \langle I_x \rangle = \frac{\sum_{y \in \mathcal{N}(x)} M_y\langle I_x \rangle_{\leftarrow y}}{\sum_{y \in \mathcal{N}(x)} M_y} \end{equation}

ReSTIR PT下Ixy\langle I_x \rangle_{\leftarrow y}的参数可从蓄水池获取, GRIS估计量只根据无偏权重调整样本亮度, 控制变量估计量包含多个通道, 可有效降低复杂色彩光照或光谱渲染的方差.