<p>Yes, the convolution is effectively evaluating the following integral:</p>

<p><span class="math-container">$$
\text{irradianceMap}(\vec n) = \frac{1}{\pi} \int \text{environmentMap}(\vec \omega_i) \, \max(\vec n \cdot \vec \omega_i, 0) \, d\omega_i
$$</span></p>

<p>This convolution isn't about whether the environment map is equirectangular, cubemap, or some other projection. We still have to do the convolution regardless, because we want to get the total diffuse light (irradiance) coming to a surface with a given normal, from all directions in the hemisphere around that normal. The environment map to start with just has light from one direction (radiance).</p>

CC BY-SA 4.0
2019-08-21T23:19:15.460Z
2019-08-21T23:19:15.460Z
Nathan Reed
<p>I am trying to understand how the generation of irradiance maps works. I was reading <a href="https://learnopengl.com/PBR/IBL/Diffuse-irradiance" rel="nofollow noreferrer">LearnOpengGL tutorial</a> and <a href="http://www.codinglabs.net/article_physically_based_rendering.aspx" rel="nofollow noreferrer">Codinglabs article</a>. Reading those articles, I got a bit confused about how we use convolution to generate the irradiance map.</p>

<p>Do we apply the integral to the environment map to convolute it, and do we do it because our environment map is equirectangular?</p>

<pbr>
Understanding the irradiance map generation
Riki
# Understanding the irradiance map generation

(Asked by: username_0 on 2019-08-20)

I am trying to understand how the generation of irradiance maps works. I was reading [LearnOpengGL tutorial](https://learnopengl.com/PBR/IBL/Diffuse-irradiance) and [Codinglabs article](http://www.codinglabs.net/article_physically_based_rendering.aspx). Reading those articles, I got a bit confused about how we use convolution to generate the irradiance map.

Do we apply the integral to the environment map to convolute it, and do we do it because our environment map is equirectangular?

**Tags:** pbr


---

## 1 answers

### Answer by username_1 on 2019-08-21. Score: 2

Yes, the convolution is effectively evaluating the following integral:

$$
\text{irradianceMap}(\vec n) = \frac{1}{\pi} \int \text{environmentMap}(\vec \omega\_i) \, \max(\vec n \cdot \vec \omega\_i, 0) \, d\omega\_i
$$

This convolution isn't about whether the environment map is equirectangular, cubemap, or some other projection. We still have to do the convolution regardless, because we want to get the total diffuse light (irradiance) coming to a surface with a given normal, from all directions in the hemisphere around that normal. The environment map to start with just has light from one direction (radiance).


---

