我正在为C++的学校编写双向路径跟踪,我有一些问题(我在网上找不到有用的解释)
( 1)为什么EyePath还有一个顶点?
2)在计算EyePath创建过程中的直接光照时,是否需要考虑到前一个顶点的值?我这么问是因为我在密码上看到了,但看起来很奇怪。
3)我不太明白如何把这两条路连接起来。随机?每个人都在一起?现在我把一个点和另一个点随机连接起来。
4) PBRT书根据Eyepath和LightPath长度实现了一项贡献。我是否需要知道我的几何学中的所有物体都是扩散的?
( 5)每一次反弹,都会在一个半球随机产生新射线吗?
所有物体都是分散的。
目前,我用15个样本得到了这个结果。

发布于 2016-03-30 20:55:34
( 1)为什么EyePath还有一个顶点?这是你眼睛/照相机上的位置样本。对于针孔相机,这是一个不动点,但对于有限孔径的薄透镜相机,它需要采样。 ( 5)每一次反弹,都会在一个半球随机产生新射线吗?这就是BRDF的目的。如果你不在乎重要性抽样,半球上的均匀随机是最简单的。不管怎样,阅读PBRT书的Monte抽样一章。
我猜你是蒙特卡洛射线追踪的新手。双向路径跟踪是一种基于路径跟踪、光跟踪和重要采样的先进算法。因此,在对双向编码进行任何编码之前,请确保您很好地理解了这些技术。
PS:刚刚找到了关于双向路径跟踪实现的详细说明(9部分系列):http://rendering-memo.blogspot.com/2016/03/bidirectional-path-tracing-1-kickoff.html
https://stackoverflow.com/questions/35737189
复制相似问题