在基于MIS的单向路径跟踪器和类似类型的渲染器中,对环境地图(EM)进行采样的当前最著名,最理想的也是经过生产验证的方法是什么?与那些以超复杂且难以理解的实现为代价提供完美采样的解决方案相比,我宁愿选择相对复杂且功能合理的解决方案。

到目前为止我所知道的

有一些简单的EM采样方法。可以以余弦加权的方式对所需的半球进行采样,
则忽略了BSDF和EM函数形状。结果,
不适用于动态EM:



为了将采样提高到可用水平,可以采样EM
在整个球体上的亮度。它相对容易实现,并且
效果很好。但是,采样策略仍然忽略了半球可见性信息和余弦因数(以及BSDF),导致表面上的高噪声
,而高噪声不会直接照亮。 EM的强度区域:


论文

我发现了一些有关该主题的论文,但尚未阅读。其中任何一个值得在向前的单向路径跟踪器中阅读和实现,还是有更好的东西?


环境地图的结构化重要性抽样(2003)作者:
Agarwal等人

Kartic Subr和Jim Arvo的《 Steerable Importance Sampling》(2007年)。他们声称提出了“ ...一种用于环境图的高效分层重要性抽样的算法,该算法能够在考虑余弦的情况下在任意曲面的局部方向所定义的正半球中生成样本。
加权。 ”论文“重要采样球谐函数”
对此发表评论:“它们创建了
的三角表示形式。环境图并存储照度乘以每个顶点的前九个球谐基函数中的每一个。
这形成了一个可操纵的基础,在该基础上,可以将夹紧的余弦有效地旋转到任何方向
Petrik Clarberg和TomasAkenine-Möller的直接照明实用产品重要性抽样调查(2008)。一种对环境地图光照和表面反射率乘积进行采样的算法。使用基于小波的重要性采样。
重要采样球谐函数(2009)
,Jarosz,Carr和Jensenn撰写。摘要说:“ ...我们提出了
第一种实用的重要采样函数的表示方法,
表示为球谐函数(SH)...”
基于音调的均值漂移环境图Feng
等人的《采样(2015)》。这是很新的东西,我也没有找到对它的引用
或论文本身。


评论

我有一个问题。仅通过对EM采样才能生成第二张图片吗?还是余弦采样和EM采样的MISed版本?我真的希望它是MISed版本,因为如果是这样,那么我可能会对阴影部分的高噪声有所补救。

不,@ tom,它仅使用随机EM采样,同时忽略了(Lambert)BRDF和余弦因子。使用了64个样本,并且未应用图像空间滤波,仅对整个像素区域求平均。当应用MIS将EM采样与余弦采样结合起来时,阴影中的噪声会大大降低,但在阳光照射的部分会略微增加。

#1 楼

这不是一个完整的答案,我只想分享我通过研究问题中提到的两篇论文获得的知识:直接照明的可指导重要性采样和实用产品重要性采样。

可替代重要性采样

在本文中,他们提出了一种采样方法,用于对钳位余弦分量和环境图照明的乘积进行采样: (\ omega_ {i} \ right)\ left(\ omega_ {i} \ cdot n \ right)^ +
$$

他们利用了分段的事实乘积函数的线性逼近可以相对较好地表示,并且可以使用前九个球谐基数进行部分预先计算。他们在自适应三角剖分EM的基础上建立此近似值,并将其用作采样的重要函数。

它们预先计算并存储每个三角形顶点的近似系数,以及用于计算近似积分每个三角形的三角形。这些系数称为顶点和三角形权重。然后,他们利用以下事实:仅通过对各个三角形权重求和而无需合并其他球谐基数,就可以轻松计算一组三角形上的积分系数。这使他们可以在三角形上构建平衡的二叉树,其中每个节点都包含用于计算节点子树三角形上的近似积分的系数。

采样过程包括选择一个三角形并对其面积进行采样:


通过以与子积分近似值成比例的概率从预构建的二叉树中向下选择一个三角形。即时计算$ O \ left(\ log N _ {\ triangle} \ right)$子积分,每个子积分包含一个钳位余弦球谐坐标的内积和预先计算的系数。
然后,通过本文提出的一种新颖的分层采样策略,以双线性方式以$ O \ left(1 \ right)$时间对选定的三角形曲面进行采样。

对我来说,这就像这是一项很有前途的技术,但论文的经典问题是它在现实生活中的表现。一方面,在某些病理情况下,很难使用三角分段线性函数来近似估计EM,这可能导致大量三角形和/或不良样品质量。另一方面,它可以立即提供整个EM贡献的相对较好的近似值,这在对多个光源进行采样时很有用。

直接照明的实用产品重要性采样

本文提出了一种采样环境地图照明和余弦加权表面反射率的乘积的方法:

$$
L_ {EM} \ left(\ omega_ {i} \ right)f_ {r} \ left(\ omega_ {i},\ omega_ {o},n \ right)\ left(\ omega_ {i} \ cdot n \ right)^ +
$$

此方法中唯一的预处理是计算EM的层次表示(基于mipmap或基于小波)。其余的在采样过程中即时完成。

采样过程:


建立实时的BRDF近似值:他们首先绘制几个BRDF重要样本并评估$ f_ {r} \ left(\ omega_ {i},\ omega_ {o},n \ right)\ left(\ omega_ {i} \ cdot n \ right)^ + $。通过这些值,他们建立了一个基于四叉树的BRDF分段常数近似值,其中树的每个叶子都包含一个样本。
计算BRDF近似值与EM的乘积:在BRDF处进行乘法四叉树的叶子和平均值传播给父级。
产品采样:使用简单的样本扭曲将均匀的样本馈送到产品树中。

该程序应以较重的预计算为代价生成相对较好的样本-它们表明,BRDF近似值大约需要100-200个BRDF样本才能获得最佳的采样性能。这可能使其适合于纯直接照明计算,其中每个阴影点生成许多样本,但是对于全局照明算法(例如,单向或双向路径跟踪器)而言,通常太贵,因为后者通常只生成几个样本每个阴影点。

#2 楼

免责声明:我不知道环境地图采样中的最新技术水平。实际上,我对此主题知之甚少。因此,这不是一个完整的答案,但我将通过数学公式来解决问题并进行分析。我主要是为我自己做这件事,因此我很清楚自己,但我希望OP和其他人会发现它有用。


$$
\ newcommand {\ w } {\ omega}
$$

我们想计算一个点的直接照度,即我们想知道积分的值
$$
I = \ int_ {S ^ 2} f(\ omega_i,\ omega_o,n)\,L(\ omega_i)\,(\ omega_i \ cdot n)^ + d \ omega_i
$$
其中$ f(\ omega_i,\ omega_o,n)$是BSDF函数(我明确声明了对法线的依赖关系,以后会有用),$ L(\ omega_i)$是环境图的辐射度,$(\ omega_i \ cdot n) ^ + $是余弦项以及可见性($ + $的含义),即$(\ omega_i \ cdot n)^ + = 0 $如果$(\ omega_i \ cdot n)<0 $

关于概率密度函数$ p(\ omega_i)$,我们通过生成$ N $个样本$ \ omega_i ^ 1,\ dots \\ omega_i ^ N $来估计此积分,估计量为
$$
我\ approx \ frac1N \ sum_ {k = 1} ^ N \ frac {f(\ omega_i ^ k,\ omega_o,n)\,L(\ omega_i ^ k)\,(\ omega_i ^ k \ cd ot n)^ +} {p(\ omega_i ^ k)}
$$

问题是:我们如何选择pdf $ p $以便能够生成在可接受的时间内对样本进行采样,并且上述估计量的方差相当小。


最佳方法选择与被积成比例的$ p $
$$
p(\ omega_i)\ sim f(\ omega_i,\ omega_o,n)\,L(\ omega_i)\,(\ omega_i \ cdot n)^ +
$$
但是大多数时候它非常根据此pdf生成样本比较昂贵,因此在实践中没有用。

OP建议的方法:

方法一:选择与余弦成比例的$ p $ term
$$
p(\ omega_i)\ sim(\ omega_i \ cdot n)^ +
$$
方法二:选择与EM成正比的$ p $ /> $$
p(\ omega_i)\ sim L(\ omega_i)
$$


根据提到的论文的名字,我可以部分地猜测它们的作用(不幸的是我没有立即阅读它们的时间和精力)。但是在讨论它们最有可能做的事情之前,让我们先讨论幂级数:D


如果我们有一个实数变量的函数,例如$ f(x)$。然后,如果表现良好,则可以将其扩展为幂级数
$$
f(x)= \ sum_ {k = 0} ^ \ infty a_k x ^ k
$$
$ a_k $是常量。可通过在某些步骤$ n $处截断总和来近似$ f $。
$$
f(x)\ approx \ sum_ {k = 0} ^ n a_k x ^ k
$$
如果$ n $足够高,则错误确实很小。

现在,如果我们在两个变量中具有函数,例如$ f(x,y)$我们只能在第一个参数中扩展它
$$
f(x,y)= \ sum_ {k = 0} ^ \ infty b_k(y)\, x ^ k
$$
其中$ b_k(y)$仅是$ y $中的函数。也可以在两个参数中扩展
$$
f(x,y)= \ sum_ {k,l = 0} ^ \ infty c_ {kl} x ^ ky ^ l
$$
,其中$ c_ {kl} $是常量。因此,带有实参的函数可以扩展为该参幂的和。对于定义在球体上的函数可以做类似的事情。

现在,让我们来定义一个在球体上定义的函数,例如$ f(\ omega)$。这样的函数也可以像一个实参的函数一样扩展。
$$
f(\ omega)= \ sum_ {k = 0} ^ \ infty \ alpha_k S_k(\ omega)
$$
其中$ \ alpha_k $是常数,而$ S_k(\ omega)$是球谐函数。球谐函数通常由两个索引来索引,并在球坐标中作为函数写入,但这在这里并不重要。重要的是$ f $可以作为一些已知函数的总和来编写。

现在的函数在球上需要两个点,例如$ f(\ omega,\ omega')$只能在其第一个参数中扩展
$$
f(\ omega,\ omega')= \ sum_ {k = 0} ^ \ infty \ beta_k(\ omega')\,S_k(\ omega)
$$
或在两个参数中都使用
$$
f(\ omega,\ omega')= \ sum_ {k,l = 0} ^ \ infty \ gamma_ {kl} \,S_k(\ omega)S_l (\ omega')
$$


那么这一切有什么用呢?

我提出了CMUNSM(疯狂的精神无用的无采样方法) :
假设我们对所有函数都有扩展,即
\ begin {align}
f(\ omega_i,\ omega_o,n)&= \ sum_ {k,l,m = 0} ^ \ infty \ alpha_ {klm} S_k(\ omega_i)S_l(\ omega_o)S_m(n)\\
L(\ omega_i)&= \ sum_ {n = 0} ^ \ infty \ beta_n S_n (\ omega)\\
(\ omega_i \ cdot n)^ +&= \ sum_ {p,q = 0} ^ \ infty \ gamma_ {pq} S_p(\ omega_i)S_q(n)
\ end {align}
如果将其插入到积分中,我们将得到
$$
I = \ sum_ {k,l,m,n,p,q = 0} ^ \ infty \ alpha_ {klm} \ beta_n \ gamma_ {pq} S_l(\ omega_o)S_m(n)S_q(n)\ int_ {S ^ 2} S_k(\ omega_i)S_n(\ omega)S_p(\ omega_i)d \ omega_i
$$

实际上,我们不再需要蒙特卡洛,因为我们可以计算积分的值$ \ int_ {S ^ 2} S_k(\ omega_i)S_n(\ omega)S_p( \ omega_i)d \ omega_i $,然后ev计算总和(实际上是近似的总和,我们只会对前几个项求和),我们会得到理想的结果。

很好,但是我们可能不知道BSDF或环境图的展开或展开收敛非常缓慢,因此我们必须在总和中使用很多术语才能得出合理准确的答案。


因此,我们的想法不是扩大所有论点。一种可能值得研究的方法是忽略BSDF并仅扩展环境图,即
$$
$$
这将导致pdf:
$$
p(\ omega_i)\ sim \ sum_ {n = 0} ^ K \ beta_n S_n(\ omega_i )(\ omega \ cdot n)^ +
$$

我们已经知道如何针对$ K = 0 $进行此操作,这只是方法一。我的猜测是,这是在其中一篇论文中获得较高$ K $的结果。


进一步扩展。您可以在不同的参数中扩展不同的功能,并执行与上述类似的操作。另一件事是,您可以在不同的基础上进行扩展,即,不使用球谐函数,而可以使用不同的函数。有用,现在我要去睡觉了。

评论


$ \ begingroup $
哈哈,当我发布答案时,SE询问我是人类还是机器人,该网站不确定:DI希望不是因为答案的长度,它有点不可收拾。
$ \ endgroup $
–tom
16年5月16日在20:33

$ \ begingroup $
你想让我的大脑融化,不是吗。 ;-)顺便说一句:我已经设法阅读了两篇论文/演讲,所以我希望在本周末扩大问题或写一个肤浅的回答。现在,快来FTW!
$ \ endgroup $
– ivokabel
16年5月16日在20:39



#3 楼

尽管产品采样方法可以为射线提供更好的(完美的)分布,但我想说,使用MIS(多重重要性采样)是一种在生产中得到验证的方法。由于阴影信息是未知的,因此产品采样无论如何都不会变得完美,很难实施。拍摄更多的光线可能更有价值!当然,要取决于您的情况和光线预算! MIS为您提供权重,以便您可以消除很多噪音的方式将它们组合在一起。 MIS特别擅长根据出现的情况选择“技术”(隐式或显式采样)。这自然发生,而无需用户根据粗糙度等做出艰难的选择。

http://graphics.stanford.edu/papers/veach_thesis/的第9章对此进行了详细介绍。另请参阅https://www.shadertoy.com/view/4sSXWt,了解带区域照明的MIS演示。

评论


$ \ begingroup $
是的,MIS是一种经过生产验证的重要技术,它对我们很有帮助,我在解决方案中采用了它(我想,我应该在问题中更清楚地指出这一点)。但是,基于MIS的估算器的整体性能取决于其部分采样策略的质量。我在这里试图做的是改进子策略之一,以提高估算器的整体性能。根据我的经验,使用质量较低的样本通常比生成更容易生成的质量较低的样本要昂贵得多。
$ \ endgroup $
– ivokabel
16年5月14日在12:28