$$ L_0(x,\ omega_0)= \ int_ {S ^ 2} {\ rho(x,\ omega_i,\ omega_0)L(x,\ omega_i)\,\ mathrm { d} \ sigma_ \ perp(\ omega_i)} $$
从严格的数学角度来看,对于纯镜面曲面,该积分必须为零。这是因为BSDF几乎在任何地方都是零(立体角)。您可以认为BSDF在某一点上是无限的,您必须考虑到这一点。但是,您如何知道此时表面的反射率是多少?从无穷大,您可以真正分辨出来。此外,从数学的角度来看,即使唯一的明智答案是零或无穷大,您也无法集成无穷大函数。
我知道这些都是细微的问题,在实践中几乎可以解决
if
s,但我想拥有无漏洞的理论。我相信,如果您从理论上接受这些问题,那么将if
放在正确的位置会有所帮助。如何处理此问题?
不能完全确定,但是我记得Erich Veach在他的论文中仅略微解决了这个问题,并试图通过说BSDF和辐射度是分布来摆脱它。这是有问题的,您不能将两个分布相乘,这在渲染方程式中是必需的。例如,当来自定向光的光照射到镜面时,您需要将两个Dirac delta函数相乘。
问题是:是否有任何工作可以通过这种方式重新构造渲染方程式,BSDF和辐射不会遇到上述问题?
光线追踪背后的最新理论是什么?
(我只知道Christian Lessig的工作,但他的工作仍超出我的数学范围。)
我已经提出了如何处理此问题的建议。我将BSDF和辐射度定义为度量。基本概念很好用,但是需要重新研究整个光传输理论,以查明它是否真的有效。
这个问题的主要目的是查明是否有人已经这样做了,所以我可以阅读它,然后将精力集中在其他地方。
评论
我还不知道为什么狄拉克三角洲是个问题。虽然不可能用计算机使用采样来计算(因此假设),但数学是明确定义的,对吗?期待有人可以澄清这一点。此外,由于没有完美的镜像,自然界中没有真正的狄拉克三角洲/无穷大值。但我想那是另一个话题。只要BSDF和辐射度可以同时是狄拉克三角洲,那么在数学上就无法很好地定义渲染方程(按原样)。即使仅允许BSDF为Dirac delta,并且我们将BSDF正式视为分布,但辐射度也必须是平滑函数才能在数学上100%正确。但是辐射绝不是光滑的功能,例如锋利的阴影会形成不连续的辐射。
是的,实际上您无法拥有完美的镜子,点光源和定向光源或针孔摄像机。但是我们在这些东西所在的地方编写程序,我们需要一个支撑它们的理论。
δ分布基础上的严格数学是测度理论。参见狄拉克三角洲的定义作为度量。我不知道要在量度理论的背景下专门处理渲染方程的工作,但可以肯定的是,所有这些东西都是在数学物理学水平上有充分根据的。
(免责声明:我不是渲染人。)在任何表面点$ x $处,BSDF的作用都是充当将入射光$ L_i $映射到出射光$ L_o $的线性算子。现在$ L_i $和$ L_o $都是分布,即线性函数$ D(\ mathbb S ^ 2)\ to \ mathbb R $没问题,因为分布的加法和标量乘法定义明确,因此它们形成向量空间。当$ L_i $和$ L_o $是函数时,我们可以将BSDF $ \ rho $表示为分布,但是如果不是,我们仍然可以说线性变换。