image-20240922221016355

昨天和同学交流获悉有一篇Specular Polynomials啊,他这个图的效果是非常的amazing。我不知道他这是啥个原理,为啥看起来这么好,于是简简单单看了下paper。

论文名字起的短就是好,他起的好不好就另说了,就这短短两个英文单词看着就牛逼。不得不说确实视觉上,肯定吊打了pt(再别说了),还比一些学习分布的比如mpg强(时间太短学不到,所以短时间内还是噪点大王),还比sppm更清晰(短时间是这样的)。第一反应就是他应该是找了个高效的采样方法,我一开始甚至以为它用的是什么分析方法(其实还真是)。

内容就不赘述了,作者用了一大堆公式拐来拐去,大概说下思路。(要是我后续发现理解错了再说)

大意就是说,在算镜面反射的时候,现在用的方法看起来和不使用镜面反射的方法没有区别,这样就白白浪费了镜面反射“折射/反射”这种角度定死了、方向定死了的优点。所以作者就很好地利用了这一点,分析了一下计算过程,使用了一些trick,让“从diffuse的shading point直接向光源采样”这一步能够在计算上较为简单地实现。思想也很简单:把从diffuse point到光源的path寻找问题变成了一个解polynomial系统根的问题,而求这个根可以消元之后用Bezout行列式求解;具体细节就是把每个中间point的点坐标都当成中间变量,约束就是折射定律,然后再把约束变成联立方程。这就把复杂问题简单化了,欸,我还能“一步”找到这个结果。属于是致敬传奇结构——“超前进位加法器”了。

image-20240922223424652

其实看完他说一大堆我还是不知道他是咋做到效果那么好的,但当我看这个效果对比图大概就能理解了。PT辛辛苦苦采样了将近500次还赶不上你采样5次了,气抖冷,原因在这也显而易见了:这个方法采样效率高,像pt相比于rt的那种高;但他又肯定不是什么奇奇怪怪预计算,而是,10秒钟5个spp也是个神人了。pt比rt牛逼之处在于他有向光源采样的mis,这个方法的牛逼之处在于,他也有向光源“直接”采样的mis(每个diffuse只要采样到射到specular应该都会走一遍这个采样),只不过他把specular的路径也算上了。

不过话又说回来,他还是不能处理DS-SD这种,除非借用BDPT的虚拟光源。他自己也说了这个问题。我们神经绘制又赢了。

大象无形啊,越简单越伟大。既然我不太可能通过采样采到那个概率为0的光路,那我就直接把这个光路放到的mis里面,变成和pt的对光源采样一样重要,思路和格局确实瞬间打开了。思想很简单,但是我却想不到,我是傻逼。

原因还有就是知道的东西不多,思路打不开,还和周围的人交流的少。就比如这个bezout,我就不敢去想,从D通过S直接算到L这种方法是可以试试的。这个idea就很明白,很接近本质。还是得和牛逼的人交流,比如要是昨天没交流都不知道有这个工作。还是慢慢快快努力吧。