<p>This approximation is typically done by running a bidirectional path tracer with a modest amount of samples per pixel. This means multiple paths per pixel to approximate the integral of $f_j$, the measurement contribution function. <a href="https://graphics.stanford.edu/papers/metro/metro.pdf" rel="nofollow noreferrer">Veach's original MLT paper</a> explains how it can be done in a way that eliminates start-up bias (see Section 5.1).</p>

CC BY-SA 4.0
2018-09-10T18:16:39.490Z
In the notation of Veach's paper, shouldn't we approximate $f$ (with $f_j=h_jf$) instead of $f_j$?
0xbadf00d
CC BY-SA 4.0
2018-09-10T18:53:00.737Z
Yes absolutely. It's an abuse of notation that is commonly used to bundle the pixel reconstruction filter and the function $f$ together. You are indeed approximating $f$.
Hubble
CC BY-SA 4.0
2018-09-11T18:01:19.577Z
I still don't understand how the approximation is done. I've updated the question. Hopefully it's now clearer what exactly I'm asking for.
0xbadf00d
CC BY-SA 4.0
2018-09-10T15:59:17.943Z
2018-09-10T20:40:33.350Z
2018-09-10T20:40:33.350Z
Hubble
<p>In Metropolis Light Transport, we need to approximate the integral of the measurement contribution function. I've read that this can be done using a traditional approach like path tracing. However, how exactly do we need to implement this approximation?</p>

<p>I've read the explanation in PBR3, but I still don't understand how this approximation is done exactly.</p>

<p>More precisely, let's make the following definitions (ignoring rigor): Let $M\subseteq\mathbb R^3$ denote the scene surfaces, $\sigma_M$ denote the surface measure on $M$, $$\Omega_n:=\left\{x\in M^{\mathbb N_0}:x_i\ne x_j\text{ for all }0\le i&lt;j\le n\text{ and }x_N=x_n\text{ for all }N\ge n\right\}$$ $$\iota_n:\Omega_n\to M^{\left\{0,\:\ldots\:,\:n\right\}}\;,\;\;\;x\mapsto(x_0,\ldots,x_n)$$ $$\mu_n(A):=\sigma_M^{\otimes\left\{0,\:\ldots\:,\:n\right\}}(\iota_n(A))\;\;\;\text{for }A\subseteq\Omega_n$$ $$\Omega:=\biguplus_{n\in\mathbb N}\Omega_n$$ $$\mu(A):=\sum_{n=1}^\infty\mu_n(A\cap\Omega_n)\;\;\;\text{for }A\subseteq\Omega$$ Moreover, with the usual notation, let $$T(x_0,\ldots,x_n):=\prod_{i=1}^{n-1}f_r(x_{i+1}\to x_i\to x_{i-1})G(x_i\leftrightarrow x_{i+1})$$ $$f(x):=L_e(x_n\to x_{n-1})T(x_0,\ldots,x_n)\;,\;\;\;\text{if }x\in\Omega_n$$ $$h_j(x):=G(x_0\leftrightarrow x_1)W_e^{(j)}(x_0\to x_1)$$ Then, the measurement $I_j$ of the $j$th pixel is $$I_j=\int fh_j\:{\rm d}\mu.$$</p>

<p>Now, the question is: How exactly is $$b:=\int f\:{\rm d}\mu$$ approximated using (unidirectional) path tracing?</p>

<raytracing><rendering><pathtracing><global-illumination><monte-carlo>
How do we approximate the integral of the measurement contribution function in Metropolis Light Transport?
0xbadf00d
# How do we approximate the integral of the measurement contribution function in Metropolis Light Transport?

(Asked by: username_0 on 2018-09-10)

In Metropolis Light Transport, we need to approximate the integral of the measurement contribution function. I've read that this can be done using a traditional approach like path tracing. However, how exactly do we need to implement this approximation?

I've read the explanation in PBR3, but I still don't understand how this approximation is done exactly.

More precisely, let's make the following definitions (ignoring rigor): Let $M\subseteq\mathbb R^3$ denote the scene surfaces, $\sigma\_M$ denote the surface measure on $M$, $$\Omega\_n:=\left\{x\in M^{\mathbb N\_0}:x\_i\ne x\_j\text{ for all }0\le i<j\le n\text{ and }x\_N=x\_n\text{ for all }N\ge n\right\}$$ $$\iota\_n:\Omega\_n\to M^{\left\{0,\:\ldots\:,\:n\right\}}\;,\;\;\;x\mapsto(x\_0,\ldots,x\_n)$$ $$\mu\_n(A):=\sigma\_M^{\otimes\left\{0,\:\ldots\:,\:n\right\}}(\iota\_n(A))\;\;\;\text{for }A\subseteq\Omega\_n$$ $$\Omega:=\biguplus\_{n\in\mathbb N}\Omega\_n$$ $$\mu(A):=\sum\_{n=1}^\infty\mu\_n(A\cap\Omega\_n)\;\;\;\text{for }A\subseteq\Omega$$ Moreover, with the usual notation, let $$T(x\_0,\ldots,x\_n):=\prod\_{i=1}^{n-1}f\_r(x\_{i+1}\to x\_i\to x\_{i-1})G(x\_i\leftrightarrow x\_{i+1})$$ $$f(x):=L\_e(x\_n\to x\_{n-1})T(x\_0,\ldots,x\_n)\;,\;\;\;\text{if }x\in\Omega\_n$$ $$h\_j(x):=G(x\_0\leftrightarrow x\_1)W\_e^{(j)}(x\_0\to x\_1)$$ Then, the measurement $I\_j$ of the $j$th pixel is $$I\_j=\int fh\_j\:{\rm d}\mu.$$

Now, the question is: How exactly is $$b:=\int f\:{\rm d}\mu$$ approximated using (unidirectional) path tracing?

**Tags:** raytracing, rendering, pathtracing, global-illumination, monte-carlo


---

## 1 answers

### Answer by username_1 on 2018-09-10. Score: 1

This approximation is typically done by running a bidirectional path tracer with a modest amount of samples per pixel. This means multiple paths per pixel to approximate the integral of $f\_j$, the measurement contribution function. [Veach's original MLT paper](https://graphics.stanford.edu/papers/metro/metro.pdf) explains how it can be done in a way that eliminates start-up bias (see Section 5.1).

> **Comments:**
> **username_0**: In the notation of Veach's paper, shouldn't we approximate $f$ (with $f_j=h_jf$) instead of $f_j$?  
> **username_1**: Yes absolutely. It's an abuse of notation that is commonly used to bundle the pixel reconstruction filter and the function $f$ together. You are indeed approximating $f$.  
> **username_0**: I still don't understand how the approximation is done. I've updated the question. Hopefully it's now clearer what exactly I'm asking for.  

---

