<blockquote>
  <p>If this was correct, <span class="math-container">$\frac{D(H)G(L,V,H)}{4|N⋅V|}$</span> should be a dirac delta function. But I don't think so.</p>
</blockquote>

<p>Actually, you're close to your answer - you just are trying to find out, what the assumption was in the very beginning - if you're talking about a specular BRDF. The term  <span class="math-container">$F\frac{DG}{4|N⋅V||N⋅L|}$</span> only works, if you start with the precondition, that you're dealing with a perfect mirror, otherwise this would be an integral itself. Have a look at <a href="https://www.gdcvault.com/play/1024478/PBR-Diffuse-Lighting-for-GGX" rel="nofollow noreferrer">PBR Diffuse Lighting for GGX+SmithMicrosurfaces</a> by Earl Hammon Jr., where explains how to get to the specular BRDF. Especially have a look at slide 29:</p>

<ul>
<li>Microfacet BRDF is a perfect mirror 

<ul>
<li>I.e., light reflects if and only if <span class="math-container">$m = H$</span>

<ul>
<li>Mathematically, BRDF is a scaled dirac delta <span class="math-container">$\delta_m(H, m)$</span></li>
</ul></li>
</ul></li>
</ul>

<p>So the perfect mirror is your model in the beginning<span class="math-container">$^1$</span> - but only for the specular BRDF! </p>

<p>If you are trying to see, if including the diffuse BRDF into your BRDF is a perfect mirror, then this assumption does not hold any more and thus you don't have the dirac delta function.</p>

<hr>

<p><span class="math-container">$^1$</span> Note that he speaks about a microfacet being a perfect mirror. However, if all your microfacets are perfectly aligned, then your microgeometry "equals" your macrogeometry</p>

CC BY-SA 4.0
2019-05-07T06:24:24.303Z
2019-05-07T06:24:24.303Z
Tare
<p>I actually have stumbled at this same exact problem. I think I have found the solution in the pbr book: <a href="https://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models#TheTorrancendashSparrowModel" rel="nofollow noreferrer">https://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models#TheTorrancendashSparrowModel</a></p>
<p>Basically from what I understand, the derivation for a perfect mirror (without fresnel and geometry terms) goes like this:</p>
<p><span class="math-container">$L(\omega_o)=\int \text{brdf}(\omega_i, \omega_o) \cos(\theta_i) d\omega_i=\int\frac{D(\omega_h) L_i(\omega_i)}{4\cos(\theta_i) \cos(\theta_o)}\cos(\theta_i)d\omega_i=\int\frac{D(\omega_h) L_i(\omega_i)}{4\cos(\theta_o)}d\omega_i$</span></p>
<p>However, the crucial detail is that the distribution function <span class="math-container">$D(\omega_h)=\delta(\omega_h)$</span> here is a function of <span class="math-container">$\omega_h$</span>, but the integration happens over <span class="math-container">$\omega_i$</span>. And according to formula 8.17 of the pbr book,
<span class="math-container">$d\omega_h=\frac{d\omega_o}{4 \cos(\theta_h)}=\frac{d\omega_i}{4 \cos(\theta_h)}$</span>, and for the case of integrating over a perfect mirror, <span class="math-container">$\theta_h=\theta_i=\theta_o$</span>, which essentially means <span class="math-container">$d\omega_i=4 \cos(\theta_o)d\omega_h$</span>.</p>
<p>And now, finally substituting this <span class="math-container">$d\omega_i$</span> and essentially integrating over <span class="math-container">$\omega_h$</span> instead, we get:</p>
<p><span class="math-container">$L(\omega_o)=\int\frac{D(\omega_h) L_i(\omega_i(\omega_h))}{4\cos(\theta_o)}4 \cos(\omega_o)d\omega_h=\int\delta(\omega_h)L_i(\omega_i(\omega_h))d\omega_h=L(\omega_i)$</span></p>
<p>TL;DR it's because <span class="math-container">$D(\omega_h)$</span> is a function of <span class="math-container">$\omega_h$</span> and not a function of <span class="math-container">$\omega_i$</span>. However, one can be converted to another via this &quot;extra&quot; term: <span class="math-container">$d\omega_h=\frac{d\omega_o}{4\cos(\omega_h)}$</span></p>

CC BY-SA 4.0
2022-11-23T06:59:09.163Z
2022-11-23T07:06:29.917Z
2022-11-23T07:06:29.917Z
Suslik
<p>Perfect mirror's brdf is simple,</p>

<p><span class="math-container">$F\frac{\delta(\omega_i-\omega_r)}{|\cos(\theta_r)|}$</span></p>

<p>as in <a href="http://www.pbr-book.org/3ed-2018/Reflection_Models/Specular_Reflection_and_Transmission.html" rel="noreferrer">http://www.pbr-book.org/3ed-2018/Reflection_Models/Specular_Reflection_and_Transmission.html</a></p>

<p>As shown in several articles, microfacet brdf can have zero roughness by definition then they should be able to represent a perfect mirror. But I cannot derive them to above correct perfect brdf.</p>

<p>For instance, when I put zero roughness into GGX model,
(<a href="https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf" rel="noreferrer">https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf</a> )</p>

<p>D(m) = D(H) goes to infinity by divided by 0 and G is just one. However, the brdf I got is,</p>

<p><span class="math-container">$F\frac{DG}{4|N\cdot V||N\cdot L|}$</span></p>

<p>Then rendering equation is,</p>

<p><span class="math-container">$\int F\frac{D(H)G(L,V, H)}{4|N\cdot V||N\cdot L|} \cos\theta_id\omega_i = \int F\frac{D(H)G(L,V, H)}{4|N\cdot V|} d\omega_i$</span></p>

<p>If this was correct, <span class="math-container">$\frac{D(H)G(L,V,H)}{4|N\cdot V|}$</span> should be a dirac delta function. But I don't think so.</p>

<p>Where am I wrong? How can I derive a perfect mirror from microfacet brdf?</p>

<p><strong>UPDATE</strong></p>

<p>I concluded that Cook-Torrance's brdf can not represent a perfect mirror. The equation has some small value greater than zero when H <span class="math-container">$\neq$</span> N even if roughness is zero. So, normalization factor <span class="math-container">$4|N\cdot V|$</span> should be not be removed.</p>

<p>Correct me if I was wrong.</p>

<brdf><microfacet><ggx>
Can microfacet BRDF (including ggx) represent perfect mirror?
Hyuk Kim
# Can microfacet BRDF (including ggx) represent perfect mirror?

(Asked by: username_0 on 2019-05-05)

Perfect mirror's brdf is simple,

$F\frac{\delta(\omega\_i-\omega\_r)}{|\cos(\theta\_r)|}$

as in <http://www.pbr-book.org/3ed-2018/Reflection_Models/Specular_Reflection_and_Transmission.html>

As shown in several articles, microfacet brdf can have zero roughness by definition then they should be able to represent a perfect mirror. But I cannot derive them to above correct perfect brdf.

For instance, when I put zero roughness into GGX model,
(<https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf> )

D(m) = D(H) goes to infinity by divided by 0 and G is just one. However, the brdf I got is,

$F\frac{DG}{4|N\cdot V||N\cdot L|}$

Then rendering equation is,

$\int F\frac{D(H)G(L,V, H)}{4|N\cdot V||N\cdot L|} \cos\theta\_id\omega\_i = \int F\frac{D(H)G(L,V, H)}{4|N\cdot V|} d\omega\_i$

If this was correct, $\frac{D(H)G(L,V,H)}{4|N\cdot V|}$ should be a dirac delta function. But I don't think so.

Where am I wrong? How can I derive a perfect mirror from microfacet brdf?

**UPDATE**

I concluded that Cook-Torrance's brdf can not represent a perfect mirror. The equation has some small value greater than zero when H $\neq$ N even if roughness is zero. So, normalization factor $4|N\cdot V|$ should be not be removed.

Correct me if I was wrong.

**Tags:** brdf, microfacet, ggx


---

## 2 answers

### Answer by username_1 on 2019-05-07. Score: 2

> If this was correct, $\frac{D(H)G(L,V,H)}{4|N⋅V|}$ should be a dirac delta function. But I don't think so.

Actually, you're close to your answer - you just are trying to find out, what the assumption was in the very beginning - if you're talking about a specular BRDF. The term $F\frac{DG}{4|N⋅V||N⋅L|}$ only works, if you start with the precondition, that you're dealing with a perfect mirror, otherwise this would be an integral itself. Have a look at [PBR Diffuse Lighting for GGX+SmithMicrosurfaces](https://www.gdcvault.com/play/1024478/PBR-Diffuse-Lighting-for-GGX) by Earl Hammon Jr., where explains how to get to the specular BRDF. Especially have a look at slide 29:

* Microfacet BRDF is a perfect mirror
  + I.e., light reflects if and only if $m = H$
    - Mathematically, BRDF is a scaled dirac delta $\delta\_m(H, m)$

So the perfect mirror is your model in the beginning$^1$ - but only for the specular BRDF!

If you are trying to see, if including the diffuse BRDF into your BRDF is a perfect mirror, then this assumption does not hold any more and thus you don't have the dirac delta function.

---

$^1$ Note that he speaks about a microfacet being a perfect mirror. However, if all your microfacets are perfectly aligned, then your microgeometry "equals" your macrogeometry


---

### Answer by username_2 on 2022-11-23. Score: 1

I actually have stumbled at this same exact problem. I think I have found the solution in the pbr book: <https://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models#TheTorrancendashSparrowModel>

Basically from what I understand, the derivation for a perfect mirror (without fresnel and geometry terms) goes like this:

$L(\omega\_o)=\int \text{brdf}(\omega\_i, \omega\_o) \cos(\theta\_i) d\omega\_i=\int\frac{D(\omega\_h) L\_i(\omega\_i)}{4\cos(\theta\_i) \cos(\theta\_o)}\cos(\theta\_i)d\omega\_i=\int\frac{D(\omega\_h) L\_i(\omega\_i)}{4\cos(\theta\_o)}d\omega\_i$

However, the crucial detail is that the distribution function $D(\omega\_h)=\delta(\omega\_h)$ here is a function of $\omega\_h$, but the integration happens over $\omega\_i$. And according to formula 8.17 of the pbr book,
$d\omega\_h=\frac{d\omega\_o}{4 \cos(\theta\_h)}=\frac{d\omega\_i}{4 \cos(\theta\_h)}$, and for the case of integrating over a perfect mirror, $\theta\_h=\theta\_i=\theta\_o$, which essentially means $d\omega\_i=4 \cos(\theta\_o)d\omega\_h$.

And now, finally substituting this $d\omega\_i$ and essentially integrating over $\omega\_h$ instead, we get:

$L(\omega\_o)=\int\frac{D(\omega\_h) L\_i(\omega\_i(\omega\_h))}{4\cos(\theta\_o)}4 \cos(\omega\_o)d\omega\_h=\int\delta(\omega\_h)L\_i(\omega\_i(\omega\_h))d\omega\_h=L(\omega\_i)$

TL;DR it's because $D(\omega\_h)$ is a function of $\omega\_h$ and not a function of $\omega\_i$. However, one can be converted to another via this "extra" term: $d\omega\_h=\frac{d\omega\_o}{4\cos(\omega\_h)}$


---

