ZW方法简述
On-line Learning of Parametric Mixture Models for Light Transport Simulation
Practical Path Guiding for Efficient Light-Transport Simulation
Selective guided sampling with complete light transport paths
Product Importance Sampling for Light Transport Path Guiding
Primary Sample Space Path Guiding
Learning to Importance Sample in Primary Sample Space
Adjoint-Driven Russian Roulette and Splitting in Light Transport Simulation
Learning to Importance Sample in Primary Sample Space

A zero-variance-based sampling scheme for Monte Carlo subsurface scattering
Improving the Dwivedi sampling scheme

Learning Light Transport the Reinforced Way

Importance Caching for Complex Illumination
Joint Importance Sampling of Low-Order Volumetric Scattering
product重抽多component BRDF :A Unified Manifold Framework for Efficient BRDF Sampling based on Parametric Mixture Models
Bayesian online regression for adaptive direct illumination sampling
Adaptive Environment Sampling on CPU and GPU
Deep Scattering: Rendering Atmospheric Clouds with Radiance-Predicting Neural Networks
Neural Importance Sampling


ZW-based Sampling

the theory of zero-variance random walks, originally developed in the neutron transport literature, can serve as a convenient theoretical framework for path guiding methods.
The intuitive idea of path guiding is straightforward: sample paths in such a way that they can preferably reach `important’ parts of the scene (e.g. reach the light sources, if we sample paths from the camera, as in path tracing).
In order to achieve that, we need to design appropriate probability distributions to be used in path sampling.
The theory of zero-variance random walks provides such sampling distributions.
More precisely, the ZV theory provides a set of local sampling distributions that provably yield globally optimal sampling of the path space (in the sense that the resulting estimator will have zero variance)
The idea that a random walk can be constructed in such a way that it always yields the correct answer with absolutely no variance has been around for almost as long as MC methods themselves.

Hoogenboom’s recent 2008 NSE article (Zero-variance Monte Carlo Schemes Revisited) is very important: he corrects some misconceptions about the uniqueness of zero-variance walk construction that have lingered for several decades, and includes discussions about boundary crossing and track-length estimators as well.
Booth’s 2012 article (Common misconceptions in Monte Carlo particle transport) further clarifies and generalizes some of the concepts of zero-variance schemes. He argues that Hoogenbooms’ conclusion concerning the uniqueness of the zero-variance construstions are not correct and that there are multiple ways in which a zero-variance walk can be constructed.

While the ZV theory provides a convenient framework, it is a mere theoretical construct that cannot be readily applied in practice, the reason being that it needs the radiance solution everywhere in the scene.
But the radiance solution is unknown up front since that is what we are attempting to compute in the first place.

In practice, this is realized by replacing the radiance solution by some convenient approximation, which then yields an approximation of the ZV scheme

How can we obtain such an approximate solution?

  • One option is to use statistical/Machine learning techniques to reconstruct the solution and the ZVbased sampling distributions directly from the Monte Carlo samples used in the rendering itself (or in a separate pre-pass). Our work [Vorba et al. 2014, 2016] applies this idea to surface light transport. Our recent work [Herholz et al.] generalizes the idea to volumetric transport.
  • Another, very different approach to obtain the approximate solution, is to employ an analytical light transport solution in a canonical case that resembles the situation under consideration.In the specific case, we use this idea in MC subsurface scattering and the appropriate canonical case here is a flat, semi-infinite medium (half-space).

In order to apply this idea to volumetric transport, all the various random decisions used when constructing a light transport path need to be appropriately importance sampled.

This includes the selection of scattering distance along a ray, and the decision whether the scattering should occur in the volume or at the next surface interaction. These decisions are unique to volumetric light transport and do not appear in surface transport.

Furthermore the decisions shared with surface transport include the choice of the scattering direction and random termination/splitting of the paths.

the content about Analytical radiance approximate solution is interesting !

零方差Random walk\cite{Hoogenboom2008Zero}最早被开发用于中子传输,所有的路径引导(Path guiding)方法都可以归为零方差采样框架。路径引导最直接的想法就是:采样路径,使得路径更偏向于抵达那些场景中更加“重要”的地方。为了实现这个想法,我们需要设计对应的概率分布以便采样。零方差Random walk理论提供了构建这样的采样分布的方法——一系列的可以产生路径空间全局最优解的局部采样分布(在这种分布下,采样出来的路径将会实现完全等于零的方差)。但如果想要得到每个局部的采样分布,我们需要得到场景中每个地方的解,所以这种方法显然是没有实践可行性的,但是如果我们可以构建一系列更加易于获得的近似分布,则可以降低方差。获得这种近似分布通常有以下两种方法:

  • 基于机器学习的方法:使用机器学习构建后验性分布
  • 分析性近似方法:在某些假设下,获取积分方程的分析性解

On-line Learning of Parametric Mixture Models for Light Transport Simulation

此方法采用机器学习方法,训练出场景中离散点的辐射度角度域分布,分布采用GMM表达。分别包含训练和渲染两个单独的阶段,训练阶段包含多个子训练阶段,使用双相互引导——首先,在无引导状态下发射一批光子,接下来的每一个阶段都被之前的分布引导。发射Photon/Importons建立一张Photon/Importon map(统称为Particle map),紧接着使用这个Map选择最邻近的N个Particle来更新空间缓存结构,Particle map每次用完就删除,从新发射Particle建立Map,空间分布缓存则是保持不变的,保持持续的更新即可,训练分布采用他们提出的加权在线EM算法。采样分布时可能在某个空间点的附近找不到任何分布,这时候在这个点新建并且批训练一个分布。GMM表达的分布可以用来引导任何基于路径采样的分布,使用多重重要性采样来结合BRDF分布采样。此方法的缺点在于:查询缓存消耗时间再简单场景相对高;GMM Component数量无法自适应控制;没有抽样被积函数乘积,可能对Glossy-glossy Inter-reflection产生问题;同时它也只是局部路径引导解决方案,存在全局探索问题;GMM对于小光源、复杂可见性不够稳定,也不一定能够收敛到全局最优解。此方法是无偏的。


两阶段算法:
1、训练
包含多个训练阶段,使用双向相互guide。首先,在无guided状态下发射一批光子,接下来的每一个阶段都被之前的分布guided。发射光子/importons建立一张photon和importon map,紧接着使用这个map选择最邻近的N个particle来更新distribution (spatial) cache,particle map每次用完就删除,从新发射(不包含之前的信息,完全从新建立)particle建立map,distribution cache则是persistent,保持持续的更新即可。发射的particle会被先前建立逆向的分布guided,但可能某个点的附近招不到任何分布,这时候在这个点新建一个分布。
2、渲染
guided分布使用GMM表达,此分布可以用来guide任何基于路径采样的分布,使用MIS来combine brdf和此采样分布。
流程如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lVzS9YZ5-1605236805719)(./vorba14_1.png)]
they present a new generalization of the stepwise EM algo-rithms (both off-line and on-line) that supports density estimation from a set of weighted particles. (see 4.2)

在确定cache分布的间距时,使用KL-divergence来确保其分布之间的对应距离不超过某一个阈值。
渲染选择分布时,选择使得下列式子最小的一个分布:
∣ ∣ x − x i ∣ ∣ 2 h − 2 1 − n ⋅ n i \frac{||x-x_i||^2}{h}-2\sqrt{1-n \cdot n_i} h∣∣x−xi​∣∣2​−21−n⋅ni​ ​
然后计算x是否在cache的有效半径之内,如果不在讲会在cache的此点处创建一个新的分布。
Envmap emission sampling:在复杂的envmap光源下,由于复杂的visibility,导致guide很低效,解决见see 4.4.
RR:新的RR确保小weight的particles不被kill.see 4.5.

查询cache消耗时间再简单场景相对高(26% for undirectional,45% for directional);需要自适应的GMM component数量;没有product抽样,可能对glossy-glossy inter-reflection产生问题;只是local解决方案,全局探索问题。

Practical Path Guiding for Efficient Light-Transport Simulation

此方法思想上和14年是一致的,都是在空间点上记录对应的角度域辐射分布。但是本方法使用自适应的二叉树和四叉树来表达空间和角度域,这使得四叉树上的平均辐射度也能够得到很好的利用。另外此方法有有一个迭代的训练模式,首先在第一个渲染阶段采用无引导方法构建路径,并且自适应地在空间位置搜集每条路径的辐射值建立入射辐射采样分布,在下一个渲染阶段,使用前一个迭代建立的分布采样,在再下一个渲染阶段,保持四叉树结构但丢弃前一次迭代的分布继续迭代地搜集采样数据,如此迭代下去,这不仅保证了无偏性也保证了训练的高效。在本算法中,空间被分割为多个区域,每个区域对应一个角度分布。同时此方法还提出了一种自动预算分配算法,可以在固定的预算下自动平衡训练与渲染预算,是的最终的方差接近最小化。此方法是无偏的。

Product Importance Sampling for Light Transport Path Guiding

此方法利用GMM表达BRDF和入射分布( L i cos ⁡ θ i L_i\cos\theta_i Li​cosθi​),能够轻易满足容易拟合,闭合形式采样,平凡归一化等特性,同时GMM也可以用于表达各向异性分布,并且GMM相乘依然是GMM,这使得乘积易于表达,从而达到重要性抽样分布乘积的目的。此方法GMM的训练完全参考\cite{Vorba2014On}。此方法的优点在于不对BRDF的形状做任何假设,可以表达所有表面,但是GMM乘积是在线计算,采样效率比较低,而且预处理需要同时训练光照分布和拟合BRDF,总体消耗较大。此方法是无偏的。


利用GMM表达BRDF和入射分布( L i cos ⁡ θ i L_i\cos\theta_i Li​cosθi​),能够容易拟合,闭合形式采样,trivial归一化,可表达各向异性分布,simple alignment of mixtures with different reference frames(which enables a direct caculation of the product mixture).
使用disk mapping而不是像【Vorba 14】的Shirley Chiu mapping(第四节 GMM representation).
算法步骤:

  • 预计算:对于每个材质和一组离散的 ω i \omega_i ωi​集合,拟合GMM形式,储存在BRDF Cache,得到 p ρ p_\rho pρ​
  • 使用Vorba14的方法双向训练Li分布并且使用GMM表达
  • 重要性抽样 p P r o d = p ρ @ p L p_{Prod}=p_{\rho}@p_L pProd​=pρ​@pL​

EM 优化,非线性优化(Ceres),4.1.2
各向异性BRDF Cache需要离散储存
采样重要性重要:

  • 查询BRDF Cache
  • 查询Li Cache
  • 计算product mixture(利用GMM的性质: G 1 ( y ) ∗ G 2 ( y ) = ( G 1 @ G 2 ) ( y ) = G 1 , 2 ( y ) G_1(y)*G_2(y) = (G_1@G_2)(y) = G_{1,2}(y) G1​(y)∗G2​(y)=(G1​@G2​)(y)=G1,2​(y)其中 G 1 , 2 G_{1,2} G1,2​的参数可以由两者的参数分析性获得,见附录A)
  • 重要性抽样product,得到 ω o \omega_o ωo​和pdf.

Mixture采样效率问题,需要reduce, remove component可以先行减少计算消耗,平衡质量。

5节指出:使用0.5概率重要性one-shot抽样BRDF和Li分布是为了抑制坏的Li分布带来的偏,以及glossy表面带来的高方差,此处因为GMM表达了product分布,所以可以使用一个更小的值0.1,也就是9成概率采样product分布。

内存消耗:对于复杂的厨房场景小于10MB的BRDF Cache,使用8 components GMM.

Primary Sample Space Path Guiding

此方法与Vorba14,Muller17等方法的主要差别在于本方法在主采样空间(PSS)中进行学习,不需要显式建立空间-方向数据结构。依然分为两个阶段——学习和渲染。在训练阶段,搜集生成路径的随机数和对应路径的贡献,并且为其编码建立高纬KD树数据结构;渲染阶段采样KD树将随机数输入到渲染器。具体过程依然采取了类似于Muller17的迭代方式。此方法对于长度较长的路径,路径关联性的下降,需要更多的采样、更长的训练时间,效果不佳。此方法是无偏的。

Selective guided sampling with complete light transport paths

整体思想是把昂贵的数据驱动只用到需要的地方,它首先使用unguided方法采样全局path space分布,再在渲染中逐步学习出造成高方差的子空间分布,然后使用one-sample多重重要性采样把两个分布的采样结合起来得到优势互补的渲染结果。
通过使用整条path的信息作建立分布的数据,选出方差高的path(使用了DBOR来过滤底pdf造成的高方差path),使用GMM建立连续分布函数。采样的时候,在path缓存中根据权重选择一条guided path,然后在path的每个顶点采样以这个顶点为中心的高斯分布(此处会根据表面粗糙度或者g来MIS BSDF),从而得到整个路径。通过path的权在渲染的时候采样此path周围的高斯分布,得到整条path。类似于Mullter17,本方法依然可以采取一个迭代模式来在渲染中进行学习。此方法是无偏的。
玻璃球里面带有头发的场景:BDPT无法进行连接,光子图估计困难(面积和球都会引起很显著的错误)。

Learning to Importance Sample in Primary Sample Space
把整个渲染的蒙特卡洛过程作为黑盒,训练阶段在主采样空间中学习场景的采样分布,首先使用PSS的uniform采样方法采样path,然后使用重采样获取需要的目标分布,在后续渲染过程中再使用学习到的变形主采样空间采样进行渲染,具体为uniform采样PSS,使用学习到的变换变换到非uniform采样,然后使用这些采样进行渲染。构建分布具体方法使用了一个能够表达高维空间之间的RealNVP变换的神经网络,实现在主采样空间中从uniform到非uniform目标强度函数的变换【将PSS变形,再采样变形后的PSS】。这种方法和PSSMLT类似,都可以采样任意的目标分布,但是MLT需要通过拒绝很多采样来实现采样目标分布,所以非常的低效,但是本方法并不存在这种问题。

重要性抽样技术可以分为两种类型:先验性方法——构造目标分布,然后采样被积函数的分析性近似;后验性方法——拟合经验获取的被积函数采样。【Bayesian method has been proposed to sample direct illumination that can be considered a combination of a priori and a posteriori strategies [ Bayesian online regression for adaptive direct illumination sampling ]】.

本方法则使用后者方法,并不依赖于被积函数的表达形式。并且此方法直接考虑整条path,而不是执行递增的path构建。此方法是一种global sampling方法,也就是直接重要性采样整个path。we obtain a non-linear, one-to-one mapping of primary sample space onto itself that produces the desired target density.

使用DeepLearning采样复杂数据分布:
A generative model learns to transform random samples from a latent space into samples of some observable data, for example images, such that the distribution of the generated data matches the distribution of an observed set of data samples.

Our idea is to use such a learned mapping from a latent to a data space to perform importance sampling of entire light paths. A key requirement for this is that we need to be able to efficiently compute the Jacobian of this mapping, such that we can use it to perform a change of integration variables. However, the computation of the Jacobian involved in deep neural network is costly in techniques such as GANs or VAEs. Instead, we leverage a recent neural network architecture Real NVP which was specifically designed as an invertible mapping whose Jacobian can be computed easily.

神经网络当前被用到蒙特卡洛渲染主要有:去燥,回归架构插值稀疏采样(微软GI回归那篇和迪士尼渲染云那篇)。但是这些方法都是有偏的,因为他们使用有有限的数据直接预测辐射值。本方法则仅仅使用神经网络来学习如何采样,结果是无偏的。【本文没有理论证明此方法可以消除方差,仅仅是使用了几个实例来说明。】

此方法只能学习固定长度的path,更高的长度意味着更多的采样、更长的训练时间。

Adjoint-Driven Russian Roulette and Splitting in Light Transport Simulation

Learning Light Transport the Reinforced Way

Bayesian online regression for adaptive direct illumination sampling

Neural Importance Sampling

本方法更加一般化,将基于NICE的深度神经网络用在蒙特卡洛积分采样中,引入了分段多项式耦合变换层来提升耦合层建模能力,并且使用One-blob编码来处理神经网络输入以刺激计算局部化和提升推理能力。深度神经网络通过最小化KL Divergence或者方差被用来学习采样概率分布强度,介于NICE的各种特点以及能够很好的处理高纬问题,此方法可以轻易地用到主采样空间的路径分布学习。对于局部化的路径引导也就是重要性抽样正比于 L i f r cos ⁡ γ L_if_r\cos\gamma Li​fr​cosγ的分布也有很好的效果,并且对于高频空间变化也很适用。对于视角变化,轻微的场景变化重用某一视角和场景配置的学习结果依然合适。此方法也具有一些问题:对于主采样空间的学习,维度过高效果将会越差,因为路径的连携性将会越来越低;对于简单的场景也具有较高的运行时消耗;没有很好的学习率衰减模式等等。此方法是无偏的。

分析性近似(Dwivedi sampling and improved)

上述的几种Path guiding方法多数都不适用于参与性介质,其中Selective guided sampling with complete light transport paths仅用于简单的无边界的参与性介质,而Learning to Importance Sample in Primary Sample Space也仅仅只是理论上可以用于参与性介质(对于稠密介质,path可能会非常的长,数据维度过高导致训练过程过于缓慢),而这两种分析性近似主要用在参与性介质中,但是假设依旧较强。

A zero-variance-based sampling scheme for Monte Carlo subsurface scattering

此方法主要用在次表面散射模拟中,使用一个近似的零方差方法采样得到低方差的结果[Hoogenboom 2008]。Dwivedi 1982年利用此方法探索了反应堆辐射穿刺问题,此文把这种方法用在了次表面模拟上。此方法假设了一个规则的重要性源在一个half-space 均匀各向同性介质外,于是可以得到重要性函数的分析性解。Dwivedi过程得出方向采样分布准守:
p ′ ( u o ) = α 2 v 0 v 0 − u o p'(u_o)=\frac{\alpha}{2}\frac{v_0}{v_0-u_o} p′(uo​)=2α​v0​−uo​v0​​
距离采样则准寻一个基于修正extinction系数的指数分布:
s = − log ⁡ ( u ) / σ t ′ s=-\log(u)/\sigma_t' s=−log(u)/σt′​
σ t ′ = σ t ( 1 − u o v 0 ) \sigma_t' = \sigma_t(1-\frac{u_o}{v_0}) σt′​=σt​(1−v0​uo​​)
从公式可以看出更低的 α \alpha α,越加偏向于选择向外的方向,而且如果方向越朝向里距离采样距离越短,否则就越长,实现了光线快速逃离次表面实现快速收敛。此方法同样也使用MIS来结合经典采样方法。此方法是无偏的。

Improving the Dwivedi sampling scheme
Dwivedi采样的几何假设在真实场景中通常都不被满足,但是他可以在local满足。于是问题变成了在场景中的哪个地方局部使用假设,也就是选择无限厚表面的法线,前一种方法使用的是入口点法线,但此方法对于曲率高表面和背向光源的表面都存在问题。本方法对于高曲率表面使用最近距离表面点,使 n C P = x C P − x ∣ ∣ x C P − x ∣ ∣ n_{CP}=\frac{x_{CP}-x}{||x_{CP}-x||} nCP​=∣∣xCP​−x∣∣xCP​−x​用法线,对于背光则使用光源方向为法线,计算公式如前类似。另外此方法依然使用MIS来结合古典采样、最近点法线采样和光源法线采样。此方法是无偏的。

Reference

HOOGENBOOM, E. 2008. Zero-variance monte carlo schemes revisited. Nuclear science and engineering 160, 1, 1–22

Others

关于Envmap的重要性抽样:

测试重要性采样envmap和bsdf算法的DL积分器backup

Guided方法总结2019相关推荐

  1. DetNAS:首个搜索物体检测Backbone的方法 | NeurIPS 2019

    点击我爱计算机视觉标星,更快获取CVML新技术 物体检测器通常使用图像分类网络的Backbone,由于和检测任务存在一定差异,这些Backbone往往不是最优的. 本文中,旷视研究院提出DetNAS, ...

  2. win7硬件要求_九代酷睿平台装Win7的方法!2019年九代i5-9400F配B365装机配置单

    九代酷睿平台可以装win7吗?理论上九代平台的主板都是不能安装Win7系统的,当然有九代酷睿平台装Win7的方法,不过需要特定的主板可以安装的,就在近期intel发布了B365主板,支持Win7系统, ...

  3. data layui table 排序_使用pandas的pivot_table方法统计2019年各省份GDP最大最小值及其对应的所在城市...

    现有一组2019年全国GDP百强城市名单,包含序号,省区,城市,GDP(亿元)四个字段,需要找出各省份GDP最大最小值及其对应的所在城市. 我的代码编写是这样的: import pandas as p ...

  4. matlab优化设计大作业答案,优化设计有哪些方法(2019优化设计答案大全)

    本书主要介绍机械优化设计方法与实例,全书共有9章,内容主要包括机械优化设计的基本要素及数学模型.优化设计的理论基础.常见的优化设计方法和优化设计软件简介.书中对工程中常见的六大类优化设计方法--一维搜 ...

  5. 【论文笔记】开放场景下的实时视觉重定位方法 HF-Net 2019

    HF-Net: From Coarse to Fine: Robust Hierarchical Localization at Large Scale 作者:Paul-Edouard Sarlin1 ...

  6. html函数splice,js数组的常用函数(slice()和splice())和js引用的三种方法总结—2019年1月16日...

    总结: slice()和splice() slice(参数1,参数2)可以查找数组下对应的数据,参数1为起始位置,参数2为结束位置,参数2可以为负数,-1对应的是从后向前数的第一个数值.splice( ...

  7. Android Studio老版本下载方法(2019.11.29)

    近期学习Android开发,找到的资源都是使用Android Studio老版本进行教学,与新版本在操作上略有不同,学习时可能会有一些步骤跟不上,而且以Anrdoid Studio3.5为基础的问题分 ...

  8. Spring的下载方法(2019.11)

    Spring的下载 由于自己在网上找的资料五花八门,为了方便以后的需要,记录下Spring的下载途径. 1.直接浏览器中输入https://repo.spring.io这个链接. 2.点击左方的图标A ...

  9. CVPR 2019 | 旷视研究院提出Re-ID新方法VPM,优化局部成像下行人再识别

    全球计算机视觉三大顶级会议之一 CVPR 2019 将于当地时间 6 月 16-20 日在美国洛杉矶举办.届时,旷视研究院将带领团队远赴盛会,助力计算机视觉技术的交流与落地.在此之前,旷视每周会介绍一 ...

最新文章

  1. python输入输出-Python3输入输出
  2. Leetcode987 二叉树的垂序遍历
  3. Apache2为什么会自动加载index.php
  4. 【win10】局域网内两台win10共享文件夹
  5. 回溯算法——复原IP地址(Leetcode 93)
  6. cpio备份linux系统,linux cpio 备份命令
  7. asp.net调用前台js调用后台代码分享
  8. settings.xml‘ has syntax errors
  9. 毕设-基于JavaWeb在线学习平台
  10. matlab有限域多项式除法_第四章多项式和有限域.ppt
  11. 【统计】回归系数与相关系数的联系与区别
  12. Redis 使用 scan 命令代替 keys
  13. 无法唤起订阅消息弹窗 requestSubscribeMessage:fail can only be invoked by user TAP gesture
  14. 如何将py文件转化为exe
  15. 开源的驰骋工作流程引擎,工作流程管理系统,表结构与运行机制。
  16. 计算机基本配置要求,BIM软件的电脑硬件配置要求
  17. py.test --pep8 vsearch.py报错解决办法
  18. Word文档怎么删除html标签,word怎么删除一整页的两种方法
  19. 打开word文档提示文件未找到_word文档打开,提示“向程序发送命令时出现问题”的原因...
  20. 个人空间岁末大回报活动12月26日获奖名单

热门文章

  1. 常用真空过滤系统简介
  2. c语言注释语句执行吗,C语言学习笔记之C语言概念解析(附资料分享)每一个语句都必须以分号结尾但预处理命令函数头和花括号“}”之后不能加分号...
  3. 如何利用短信群发进行营销呢?
  4. Python的前景及应用
  5. JavaScript 深拷贝
  6. 幼儿linux教程,儿童专用操作系统Edubuntu
  7. uni app push 点击通知栏 打开app 跳转页面
  8. Python数学基础-识图一、平面直角坐标系
  9. android7 华为p9,华为P9升级EMUI(Android7.0)的小记
  10. JS对象与JSON格式数据相互转换