辐射度缓存在探针中存储辐射度, 命中后直接查询缓存, 因此有偏.
ORCA
#
根据BSDF抽样概率和粗糙度决定舍弃概率, 根据预算归一化以避免光滑场景光线超支:
si′=∑i=1Nsibsi稀疏光线完整追踪, 根据第二次弹射顶点信息计算hash, 更新最细LOD体素的累积辐亮度, LOD与相机距离相关. 下采样以更新LOD体素, 其余光线单次弹射并查询缓存, 模拟重连接. 只用本帧数据, 不做时域累积.
SHARC
#
依据世界空间顶点和LOD计算hash, 因此跨帧hash一致, 体素辐亮度逐帧累积.
NRC
#
单个MLP缓存散射辐亮度Ls(x,ω), 路径足迹足够大时误差被模糊, 令p为BSDF抽样概率, θ1为主顶点处视线与法线夹角, c=0.01, 路径足迹定义如下:
a(x1⋯xn)=(i=2∑np(ωi∣xi−1,ω)∣cosθi∣∥xi−1−xi∥2)2a0=4πcosθ1∥x0−x1∥2,a>ca0屏幕分块后每块抽样一条路径更新缓存, 高学习率与每帧多步导致闪烁, 因此推理时使用权重的指数移动平均, α=0.99, ηt修正初期偏差, 不反馈到训练:
Wˉt=ηt1−αWt+αηt−1Wˉt−1,ηt=1−αtMLP为7层64宽无偏置, 输出RGB. ω, n转球坐标, 与1−e−r一同做4区间one-blob编码, 漫反射与镜面反射率α, β直接输入. 位置微小变化引起辐亮度剧变, 改用频率编码:
freq(x)=(sin(20πx),sin(21πx),…,sin(211πx))MLP输出乘α+β得到近似出射辐射度. 由于Ls为无偏估计量, 使用相对L2损失保证梯度无偏, sg为停止梯度, 损失函数如下:
L2(Ls,L^s)=sg(L^s)2+ϵ(Ls−L^s)2