<p><em>PBRT v3</em> Page 799:</p>

<p><a href="https://i.sstatic.net/xwuxh.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/xwuxh.png" alt="enter image description here"></a></p>

<p>Veach determined it empirically.</p>

CC BY-SA 3.0
2017-10-22T10:37:26.660Z
2017-10-22T10:37:26.660Z
chaosink
<p>Both <a href="https://github.com/mitsuba-renderer/mitsuba" rel="nofollow noreferrer">Mitsuba</a> and <a href="https://github.com/tunabrain/tungsten" rel="nofollow noreferrer">Tungsten</a> use the <strong>power heuristic</strong> to do multiple importance sampling (MIS).</p>

<p>Mitsuba:</p>

<pre><code>inline Float miWeight(Float pdfA, Float pdfB) const {
    pdfA *= pdfA;
    pdfB *= pdfB;
    return pdfA / (pdfA + pdfB);
}
</code></pre>

<p>Tungsten:</p>

<pre><code>static inline float powerHeuristic(float pdf0, float pdf1)
{
    return (pdf0*pdf0)/(pdf0*pdf0 + pdf1*pdf1);
}
</code></pre>

<p><em>Advanced Global Illumination</em> gives the <strong>balance heuristic</strong>:
$$F=\cfrac1N\sum_{i=1}^n\sum_{j=1}^{n_i}\cfrac{f(X_{i,j})}{{\sum\limits_{k=1}^n}\frac{c_k}Np_k(X_{i,j})}$$</p>

<p>The <strong>power heuristic</strong> may be like this:
$$F=\cfrac1N\sum_{i=1}^n\sum_{j=1}^{n_i}\cfrac{f(X_{i,j})p_i(X_{i,j})}{{\sum\limits_{k=1}^n}\frac{n_k}Np_k^2(X_{i,j})}$$</p>

<p>I know they are all valid estimators.</p>

<p>What's the motivation to use the <strong>power heuristic</strong>?</p>

<p>What about the <strong>cube heuristic</strong>?
$$F=\cfrac1N\sum_{i=1}^n\sum_{j=1}^{n_i}\cfrac{f(X_{i,j})p_i^2(X_{i,j})}{{\sum\limits_{k=1}^n}\frac{n_k}Np_k^3(X_{i,j})}$$</p>

<importance-sampling>
Power heuristic in multiple importance sampling
chaosink
# Power heuristic in multiple importance sampling

(Asked by: username_0 on 2017-10-22)

Both [Mitsuba](https://github.com/mitsuba-renderer/mitsuba) and [Tungsten](https://github.com/tunabrain/tungsten) use the **power heuristic** to do multiple importance sampling (MIS).

Mitsuba:

```
inline Float miWeight(Float pdfA, Float pdfB) const {
    pdfA *= pdfA;
    pdfB *= pdfB;
    return pdfA / (pdfA + pdfB);
}

```

Tungsten:

```
static inline float powerHeuristic(float pdf0, float pdf1)
{
    return (pdf0*pdf0)/(pdf0*pdf0 + pdf1*pdf1);
}

```

*Advanced Global Illumination* gives the **balance heuristic**:
$$F=\cfrac1N\sum\_{i=1}^n\sum\_{j=1}^{n\_i}\cfrac{f(X\_{i,j})}{{\sum\limits\_{k=1}^n}\frac{c\_k}Np\_k(X\_{i,j})}$$

The **power heuristic** may be like this:
$$F=\cfrac1N\sum\_{i=1}^n\sum\_{j=1}^{n\_i}\cfrac{f(X\_{i,j})p\_i(X\_{i,j})}{{\sum\limits\_{k=1}^n}\frac{n\_k}Np\_k^2(X\_{i,j})}$$

I know they are all valid estimators.

What's the motivation to use the **power heuristic**?

What about the **cube heuristic**?
$$F=\cfrac1N\sum\_{i=1}^n\sum\_{j=1}^{n\_i}\cfrac{f(X\_{i,j})p\_i^2(X\_{i,j})}{{\sum\limits\_{k=1}^n}\frac{n\_k}Np\_k^3(X\_{i,j})}$$

**Tags:** importance-sampling


---

## 1 answers

### Answer by username_0 on 2017-10-22. Score: 4 | Accepted answer

*PBRT v3* Page 799:

[![enter image description here](https://i.sstatic.net/xwuxh.png)](https://i.sstatic.net/xwuxh.png)

Veach determined it empirically.


---

