Recently I feel a bit confused about one-sample model MIS. One sample model MIS can be found here in Veach 1997. 9.2.4 The one-sample model, and this one-sample model is widely used in the opensource renderers, for example: the combination of BSDF sampling and emitter sampling in mitsuba2/3 and pbrt, path connection in BDPT for mitsuba and pbrt, etc. Basically, the estimator is:

$$ \frac{w_I(X)f(X)}{c_Ip_I(X)} $$ $c_I$ is the discrete PMF for choosing $I$th sampling strategy, $p_I(·)$ is the PDF for the $I$th sampling strategy. This is reasonable, since I can easily prove that with several unbiased estimator, the one-sample model is unbiased. Here I present a simple case where balance heuristic is used:

$$ \mathbb{E}\left(\frac{w_I(X)f(X)}{c_I p_I(X)}\right) = \int\frac{\frac{p_1(X)}{p_1(X) + p_2(X)}f(X)}{p_{c_1} p_{1}(X)}\times \left(p_{c_1} p_1(X)\right) + \frac{\frac{p_2(X)}{p_1(X) + p_2(X)}f(X)}{p_{c_2} p_{2}(X)}\times \left(p_{c_2} p_2(X)\right)dX = \int \frac{p_1(X) + p_2(X)}{p_1(X) + p_2(X)}f(X) dX= \int f(X) dX $$

My problem is:

  • From the opensource renderers, I find that the one-sample model used in them only samples via one strategy (other strategies have zero probability to get sampled). For example:

    • In path tracer NEE, we only use emitter sampling (and we don't actually sample BSDF when doing NEE). This can be found in pbrt-v3 and mitsuba2/3.
    • In BDPT path connection, we only sample "once" and calculate the weight for that exact path.
  • Is this correct for one specific strategy to have zero probability to be sampled? I know that $p_{c_I}$ in the nominator and denominator will cancel each other out, but it still doesn't feel right.

  • If I use balance heuristic, the estimator can actually be simplified when we only use one strategy to sample (the corresponding discrete PMF is 1):

$$ \frac{\frac{p_1(X)}{p_1(X) + p_2(X)}f(X)}{p_{1}} = \frac{f(X)}{p_1(X) + p_2(X)} < f(X) / p_1(X) $$ My problem for the eqn above is: Can I say that using one-sample MIS with heuristic will produce smaller mean-value than the original Monte Carlo estimator? Since I know that the original estimator is unbiased, doesn't this indicate that the one-sample MIS which samples via only one strategy is biased? Did I misunderstand anything here?

  • 1
    $\begingroup$ It should be unbiased since you have the probability for picking this specific strategy out of all also included in there. As an example imagine having to pick between sampling the diffuse and specular part of a brdf. You can do a biased coinflip in order to pick one or the other, that's what the $c_i$ accounts for. The combination weights $w_i$ can also be anything as long as they sum to 1. As far as variance goes, note that if you have a low probability sample then $\frac{1}{p_1}$ explodes, but $\frac{1}{p_1+p_2}$ doesn't necessarily, essentially resulting in lower variance. $\endgroup$
    – lightxbulb
    Jul 2, 2023 at 11:30
  • $\begingroup$ My point is, I have two strategies but one of the strategy has zero probability to be sampled. Then the resulting estimator will be $\frac{f(x)}{p_1(x) + p_2(x)}$, which is always less than $f(x) / p_1(x)$ but both are unbiased. This contradiction confuses me. $\endgroup$ Jul 2, 2023 at 12:08
  • $\begingroup$ I don't think you are allowed a zero probability. Even just for $p_1$ and $p_2$ you are allowed to have zero probability only over a set of measure zero. $\endgroup$
    – lightxbulb
    Jul 2, 2023 at 12:28
  • $\begingroup$ I think this is what's done in NEE. For example, in the path tracer of pbrt-v3, when one interaction point is decided, we directly connect it with a light source. Yet, in the code, they only do emitter sampling and no BSDF/phase function sampling. I think this would mean that BSDF/phase function sampling have zero probability to be sampled. The code can be found here: pbrt-v3/core/integrator.cpp-line119-EstimateDirect, actually this is also true for mitsuba2/3. $\endgroup$ Jul 2, 2023 at 12:47
  • $\begingroup$ They have multiple cases, and there is no discrete pmf here as far as I can see. If the light is a Dirac delta then you cannot sample it with bsdf, so then you're essentially just sampling with $p_2$, it's equivalent to setting $p_1=0$ since tge weight is then just $1$. In the cases where it's standard sampling I believe they combine NEE with non-zero probability strategies. That is, I don't think they ever have $c_i = 0$. $\endgroup$
    – lightxbulb
    Jul 2, 2023 at 12:52


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.