Weighted delta tracking question

Practical and theoretical implementation discussion.
dawelter
Posts: 1
Joined: Sun Oct 29, 2017 3:15 pm

Weighted delta tracking question

Postby dawelter » Sat Nov 11, 2017 3:57 pm

Hello,

I read the recent paper on Spectral and Decomposition Tracking by Kutz et al.
http://drz.disneyresearch.com/~jnovak/p ... index.html

I want to use weighted tracking methods in my own toy path tracer.

Following the PBRT book pg 889, the incident radiance is composed of two terms: the radiance arriving from the distant hit point Tr*Lo and the inscattered radiance integrated along the viewing ray.
pbrt_pg889.png
pbrt_pg889.png (8.24 KiB) Viewed 186 times

I evaluate only one of these terms probabilistically. The first, term if no collision was generated, otherwise there is a scattering or absorption even.

As per PBRT I need to weight Tr*Lo with the probability that no interaction takes place, i.e. the probability to hit the surface p_surf. Thus the estimator is Tr*Lo/p_surf.

However, I cannot figure out how to determine the weight Tr/p_surf.

So how is the inscattered radiance combined with the background?

I also took a brief look at Novak's Ratio Tracking paper but there I also failed to find an answer.

Cheers,

shocker_0x15
Posts: 62
Joined: Sun Aug 19, 2012 3:24 pm

Re: Weighted delta tracking question

Postby shocker_0x15 » Sun Nov 19, 2017 11:49 am

Hi,

In my understanding, T_r / p_surf becomes the weight computed by cumulatively multiplying the following single step weight:
single_step_weight.png
single_step_weight.png (7.03 KiB) Viewed 75 times

as in the SD tracking paper.

If this is implemented by following PBRT's interface for example for GridDensityMedium::Sample(),
it returns the above weight if no interaction found, otherwise returns
weight_for_scattering.png
weight_for_scattering.png (8.98 KiB) Viewed 75 times

, where w is the cumulative weight until this step.

In the conventional delta tracking,
P_n(x) = \mu_n(x) / \bar{\mu} (this leads the single step weight to 1.)
\bar{\mu} = \mu_a(x) + \mu_s(x) + \mu_n(x).
Therefore, this implementation matches the current PBRT-v3's implementation.


Return to “General Development”

Who is online

Users browsing this forum: No registered users and 3 guests