前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Path-Space Differentiable Rendering

Path-Space Differentiable Rendering

作者头像
Peter Lu
发布2021-03-04 14:53:14
1.2K0
发布2021-03-04 14:53:14
举报
文章被收录于专栏:LETLET

渲染领域最重要的两篇论文,一篇是‘Rendering Equation’,另一篇则是‘Robust Monte Carlo Methods for Light Transport Simulation’,前者奠定了理论基础,后者则涵盖了主要的光纤传输算法,两篇论文可以说是渲染领域的奠基之作。而在可微分渲染领域,个人感觉‘Differentiable Monte Carlo Ray Tracing through Edge Sampling ‘奠定了可微分渲染的理论,而本篇论文则类似Veach的论文,探讨了如何将已有的光线传输算法引入到可微分渲染中。本论文发表于2020年,主要贡献有三:

  • 相对于场景任意参数的光线积分的微分形式,将该积分分解为内部(interior)和边缘(boundary)部分,两部分互相独立,分别调用对应的Monte Carlo(MC)方法来计算
  • 一种参数化的方法,减少边缘积分需要考虑的不连续性(discontinuities)类型
  • 对光线积分的interior和boundary 部分提出新的无偏的MC方法求微分,在复杂场景和光线传输效果上大大的优于之前的算法

首先要了解一些基础概念。论文中提出了‘evolving surface’的概念,如上图,

是一个二维流形(manifold),称为reference configuration,对任意

的一个motion,提供了

的方法

,实现了, 从

到场景表面M的平滑的一一映射。

称为evolving surface,我们还提供了方法

的逆函数

。这里,我们称点

是一个material point,而

是spatial point,对应不同的参数

,会有不同的方法

,这里,会产生一个集合

,该集合可以认为是运动motion X产生的

的轨迹。给定一个

,可能存在无限多的X,形成这个相同的轨迹

。同样,对一个光路积分,它的积分区间可以是基于

的,也可以是基于

的,前者称为material形式的积分,而后者称为spatial形式的积分。

我们的目的是对

求导,因此需要给出

的参数化表达。首先,我们可以基于对应的轨迹

对其参数化,如上图,对给定的

,我们采用

的形式,在

周边(绿色区域)形成了一个集合

,因此,

也构成了

的周边(1),同时,在

附近指定

则是一个平滑函数,将

的区域一一对映射到

的子集(2)。而对于给定的

则是其附近的平滑函数(对应红色虚线)。

称为local parameterization。

同时,当

有一个可行的motion

,对所有的

,可得

,这里

是一个平滑函数,一一映射到reference

,我们称函数

为global parameterization。

这样,对于给定的spatial point

和表面参数化的

(local或global),存在

,满足

,我们称

的局部坐标,并且定义

的local velocity为:

如果我们知道

的单位法线

,则对应的scalar normal velocity为

,该值独立于表面参数化表达

,而local tangential velocity

则依赖于

接着,我们对

封装一个标量空间场

,则其对应的scene derivative和normal scene 的derivative分别是:

如动图所示,我们可以理解场景变化是一个正在播放的视频流(平滑),表面参数化的

用来表达每一帧的场景效果(scalar value),而速度

来衡量场景随着

的变化(导数),我们实现了对

的求导。这里,

是场景表面的梯度。当

时,

如上图,我们定义一个evolving surface

,其单位法线为

,在一个标量空间场

中,对给定

,除了不连续区域

,其方法相对参数

都是

连续,定义一个extended boundary

,包括边界

和该空间中不连续部分

。我们有了速度的概念,就可以通过流体力学中的transport relation来对光路积分求微分:

这里,

是total curvature(principal curvature的总和),

是对应的scalar normal velocity。蓝色是interior部分,而橙色是boundary部分。

在特定情况下,当场景表面

和场景参数

独立时,

,这样,上述公式则退化为Reynolds transport relation。

另外,本论文有两个基本假设,第一,对空间中任意一点

,都存在表面参数化的方式,让

的切线速度为0。这里,我们通常用MC采样,我们可以获取采样点的法线

以及对应的local velocity,保证切线速度为0。第二,和其他论文一样,认为光源

和材质

相对于参数

都是连续的。基于这两个假设,我们可以获取光路积分导数的path space形式:

(一点是在边界上,其他的都在path space中),而

,是boundary path space:

(所有情况的集合),我们称这样的光路为boundary light path,对应上图(b),

称为boundary segment。

这里,我们积分的作用域是path space,也就是

的形式。上图,通过逆方法

和motion

,已知初始值

,我们可得

,这样,换元法可以用作用域

来替换

,得到光路积分导数的material形式:

这种形式下,因为

的boundary不变,与

无关,我们不需要考虑边缘,而只需要考虑内部不连续区域,同时,相比之前对边缘光路的采样,这种形式更容易生成对应的光路,采样成本更低。这里,因为换元,

需要考虑对应的Jacobian determinant,实质上是将boundary的积分转化为interior的形式。

这样,我们可以用传统的光路积分算法来求解interior部分(蓝色),下图是对应的NEE算法:

下面则需要求解boundary积分,这里,我们把这条光路分为三部分:source subpath

, detector subpath

和boundary segment

这里,

,我不太肯定如何对G求导,需要结合代码来理解。

如上图,我们可以找到对应的edge点

,随机一个方向

,得到对应的

,然后找到对应的

。因此,我们需要对

做一次换元,从material到spatial,这里同样有一个Jacobian determinant:

前者是从

,后者是从material point

到spatial point

。论文中给出了如何计算该Jacobian determinant的方法。

另外,论文还给出了

的一种Grid-based IS,因为

是一个3D,类似path guiding的思路,我们可以以离散的形式,估算对应的采样权重,pdf。

最后,我们对

采用类似传统光路的算法,如上图,给出对应的算法:

下面是论文给出的结果部分。

上图是采用unidirectional算法的结果,当物体沿着竖直轴旋转时的微分结果。

这个是采用bidirectional算法的结果,相对两个场景中面积光的水平移动。以上两个例子证明了算法的有效性。

这个例子是采用unidirectional的性能对比,Edge是Differentiable Monte Carlo Ray Tracing的效果,Reparam是Reparameterizing Discontinuous Integrands的效果,可见,该算法得到了存在bias但较为平滑的结果。该例子说明了本论文的算法效果和性能。

这个例子是树枝这个复杂场景下绕竖直轴旋转的例子,但上图是旋转0.2弧度,下图是旋转0.6弧度的结果,这里,本论文的算法速度最快,而Reparam则在第二个例子中没有收敛。结果是基于image和参数的收敛效果。

这个例子是一个复杂geometry puffer ball的结果,体现了该算法对复杂geometry的能力。

这个例子体现了复杂光路传输效果下的结果,对比bidir和unidir,以及另外两篇相关论文的结果,可见本算法的巨大优势。

还是相同的例子,体现了在该场景下,bidir算法的收敛效果较好。

这个例子是一个马克杯,杯子内有一盏灯,会产生caustic现象,用bidir方法,收敛到对应的场景参数。

这个例子是一个银环,有四种不同颜色的光源。这两个例子都有specular导致的caustic,参数微小的调整都会带来渲染结果的巨大变化。论文算法仍然可以收敛到正确的效果。

最后,论文也给出了自己的限制和后续工作,简单说,是对volume的扩展,以及如何支持MCMC的光纤传输算法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档