为什么Kajiya在1986年提出的渲染方程式不能直接/解析地求解?

评论

好问题,无需研究。

您通常对积分方程了解多少?您是否正在寻求一种解决方案?

#1 楼

很遗憾,我无法在上面的答案中添加评论(信誉不高),所以我会这样做。积分方程(特别是第二类Fredholm方程)。有许多这样的方程式都有解析解。即使渲染方程的某些形式也有一个(例如,即使渲染方程是无限递归的,也可以使用简单的收敛几何级数来给出白色熔炉的解决方案)。

也没有必要通过限制递归次数来偏向估计的解决方案。 《俄罗斯轮盘》提供了一个有用的工具,可以为我们提供无穷无穷的递归渲染方程式解决方案。

主要困难在于,反射率(BRDF),发射辐射度和可见度的函数非常复杂。并且经常包含许多不连续点。在这些情况下,通常没有分析解决方案,或者根本无法找到这样的解决方案。一维情况也是如此。大多数积分缺少解析解。

最后我想指出,即使大多数渲染方程式实例都没有解析解,但在渲染方程式的形式上还是有很多研究有一个解析解。在可能的情况下使用此类解决方案(作为近似值)可以大大减少噪声并加快渲染时间。

#2 楼

渲染方程如下:



现在,积分在$ x $点附近的球体上。
您在一些衰减的光上积分,来自各个方向的光。

但是有多少光入射?这是其他点$ x'$向点$ x $的$ \ omega_i $方向反射的光$ L(x',\ omega_i)$。现在,您必须计算新点$ x'$反射了很多光,这需要求解该点的渲染方程。而且该点的解决方案取决于大量其他点,包括$ x $。简而言之,渲染方程式是无限递归的。

您无法求解精确地和分析性的,因为它在无限积分域上具有无限积分。

但是由于光每次被反射都会变弱,因此在某个时候,人类根本无法再注意到差异。因此,您实际上并没有求解渲染方程,而是将递归(例如反射)的次数限制为“足够接近”的次数。

评论


$ \ begingroup $
如果您有一个愚蠢的场景,那么您可能可以解析求解一个点的渲染方程式。如果您的场景比这更简单,则可能可以获得整个投影图像的解析解决方案。但这将毫无用处... :)
$ \ endgroup $
– joojaa
16年7月7日在20:33



$ \ begingroup $
场景必须非常简单,就像一个平面对象一样。由于存在整个球体的积分,即使存在任何两个可以互相看到的点,渲染方程也会变得无限大。每个点在集成域中都包括另一个。因此,只有一个反射器无法自我反射。那么你可以解决它。那么根本就不会有全局照明效果,因此归结为局部照明。那是可以解决的。
$ \ endgroup $
–龙船
16年7月7日在20:37

$ \ begingroup $
是的,这很简单。
$ \ endgroup $
– joojaa
16年7月7日在20:38

$ \ begingroup $
@joojaa据我所知,并不是并非在所有情况下都无法解决渲染方程,而是在任何时候都可以解决的情况下,它没有任何实际用途。
$ \ endgroup $
– Galois
16年7月10日在2:48

$ \ begingroup $
仅供参考,Mathjax语法可在此StackExchange上使用,因此,如果将$符号放在标识符周围,则它们看起来都是数学的。
$ \ endgroup $
–朱利安·盖尔特(Julien Guertault)
16年7月11日在2:08