Bidirectional Path Tracer
Bidirectional path tracer is now implemented in AdaPT, along with its MIS path connection methods to reduce variance and speed up convergence. BDPT has already been tested against pbrt-v3 qualitatively (volumetric cornell box), with some minor inconsistency. Enhancements:
- Migrated from taichi 1.3 to taichi 1.4 for faster JIT compilation. Follow-up API optimization should be carried out due to automatic function inlining of taichi, which makes JIT really slow (BDPT on the first run takes 1.5 - 2 min to compile).
- Volumetric path tracing with/without BDPT in unbounded scene. In the previous versions, VPT produces noisy (with infinite variance) and biased rendering results (due to untimely ray termination).
- AdaPT can converge to the same result with only 1%-5% required samples compared to VPT and UDPT. Previously, VPT will not converge even we sample 20000 rays per pixel in
vpt/balls.xml
scene. - Fixed some implementation bugs.
More rigorous tests should be done in future versions. In the future version, Metropolis Light Transport & transient rendering methods will be implemented.