bssrdf

博客园 首页 新随笔 联系 订阅 管理
  14 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
Spent some time on bidirectional path tracing(BPT) in PBRT. At many parts of the code,
I had to do it by try and error. Debugging is a pain. The implementation may
still be wrong in some details, but generally it performs much better than path (PT)
tracing built-in in PBRT.

Here is the Cornell Box scene rendered with path tracing. Note the area light
pointing towards the ceiling making the scene mostly illuminated by indirect lighting.



This is the same scene rendered with my bidirectional path tracing implementation.



Both images are rendered with similar amount of time, 1400 seconds (25 samples/pixel) for bidirectional
path tracing v.s. 1510 (100 samples/pixel) seconds for pure path tracing.  However,  BPT produced much smoother
lighting than PT because it incorporates information from light sources,  just like photon mapping.
posted on 2006-12-12 09:28 BSSRDF 阅读(1041) 评论(9)  编辑 收藏

Feedback

#1楼  2006-12-16 10:47 mz      
很羡慕你,有PBRT看,可以省下不少时间。
基于物理的渲染很费时间,国内公司很少有做这个的,
我对这个很感兴趣,深入研究这个要读很多论文。
问题就是学了不一定能找到这样的公司,麻烦。
想问一下BSSRDF,你把这个是作为兴趣,还是工作就是做这个的?
  回复  引用  查看    

#2楼  2006-12-17 03:14 MLJack      
cong!

i also migrate this algorithm from RenderPark. :)

"Testing Monte-Carlo Global Illumination Methods with Analytically Computable Scenes"

The diffuse ball described this paper is highly valuable in debuging process. All pdfs for surface area are constant. It provide hints for unbiased estimation and bug finding.

btw, which material you used to show the refraction caustic?
Is it the refraction specular BTDF in glass?
It needs a special tag in the weight computing as it's a deta function.
Have you try any glossy BTDF?
  回复  引用  查看    

#3楼 [楼主] 2006-12-17 04:44 BSSRDF      
@MLJack
The glass is just the combination of specular reflection and transmission as defined in PBRT.
As Veach's thesis shows, the weight of the path when there are specular vertices is easy to calculate by setting corresponding PDFs to zero. However, the problem with these specular vertices is that no connection made to them such that some effects associated with them can only be obtained by standard path tracing. For those parts of the image, BPT is as noisy as PT, e.g., the glass sphere.

Haven't tried glossy BTDF yet. Interesting to see though.
  回复  引用  查看    

#4楼 [楼主] 2006-12-17 04:49 BSSRDF      
@mz
I am doing it out of interest and yes, I read a lot of papers.
PBRT book is worthwhile to get. Without it, it's going to be a nightmare to implement these more advanced algorithms. Of course you can use many open source ray tracers, but none of them has a detailed explanation as in PBRT.


  回复  引用  查看    

#5楼  2006-12-19 10:07 yuanhong      
通过对比可以看到你的方法要好很多啊!
我想问问关于图中噪声(不知恰不恰当)是如何引起的呢?有没有什么好的办法解决呢?
  回复  引用  查看    

#6楼  2006-12-20 14:48 mz      
@yuanhong
noise应该是采样产生的。
好办法应该是对每像素多射入光线,当然这样会影响速度。
还有个方法是对更好的概率密度进行采样,这个比较复杂。

  回复  引用  查看    

#7楼  2006-12-28 12:37 RacongPHT [未注册用户]
Hi, 请问你是从哪里买到PBRT的呢?我对这本书很有兴趣。
  回复  引用    

#8楼  2007-03-04 14:21 GPGPU [未注册用户]
Can't believe someone in China could get access to such a fantastic book. How did you get it?

I've briefly looked through PBRT source code, not as well written and organized as I expected. And as an effort to lay a good foundation in rendering, I am building my distributed ray-tracer from scratch.

Hope to get in touch with you in the future.
  回复  引用    

#9楼  2008-06-02 17:58 dams32 [未注册用户]
Could you give the details of your implementation of the bidirectional path tracing algorithm ? I'm trying to implement it in my own raytracer, but it's a nightmare to debug it. I think that i've misunderstood a part of the theory, so if you could help me, I would greatly appreciate it! Thanks
  回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-12 11:27 编辑过
 
另存  打印