In Section 4.1 of the paper Fusing State Spaces for Markov Chain Monte Carlo Rendering, it is described that the CDF $P$ of the distribution of paths of length $k\in\mathbb N$ may be factored into a product of conditional CDFs, $$P(x_0,\ldots,x_k)=P_0(x_0)\prod_{i=1}^kP_i(x_i\mid x_{i-1},\ldots,x_0).\tag1$$ This is reasonable, since in BDPT a path is incrementally constructed by choosing $x_i$ in dependence of its predecessors.

Now they write that "the multivariate variant of inverse transform sampling" generates a path $(x_0,\ldots,x_k)$ "by a sequence of inverse transform sampling": \begin{align}x_0&=P_0^{-1}(u_0)\\x_1&=P_1^{-1}(u_1\mid x_0)\\&\cdots\\x_k&=P_k^{-1}(u_k\mid x_{k-1},\ldots,x_0),\tag2\end{align} where $u_0,\ldots,u_k\in(0,1)$.

That doesn't make sense to me. They seem to assume that $x_i$ is chosen, depending on $x_0,\ldots,x_{i-1}$, by drawing a single random number $u_i\in(0,1)$. But this is usually not the case$^\ast$. Usually, $x_i$ is chosen by drawing multiple random numbers (depending on the material of the surface at $x_i$).

So, am I missing something? If not, the described "inverse path sampler" doesn't work. Can we fix this? How would we implement it then? I would like to find an implementation in PBRT.

$^\ast$ And I think it would be quite weird if the 3-dimensional quantity $x_i$ would be chosen by a 1-dimensional variate $u_i$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.