<p>Firstly, I highly suggest reading Eric Heitz's paper "<a href="https://hal.inria.fr/hal-00942452v2/document" rel="nofollow">Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs</a>", which covers the full derivation of microfacet-based BRDFs. </p>

<p>The $\frac{1}{4(N \cdot V)(N \cdot L)}$ term is a side effect of the derivation of the BRDF for specular microfacets. Specifically, it comes from the Jacobian of the reflection transformation. See the paper and/or <a href="https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf" rel="nofollow">Walter et. al's 2007 paper</a> for more details.</p>

<p><br /></p>

<p>As for your concern for a divide by zero, the definition of the rendering equation prevents it. Let me explain:</p>

<p>For $(N \cdot V)$ to equal zero, they must be orthogonal. In this case, the visibility term of the rendering equation will cull the cases at / below the horizon.</p>

CC BY-SA 3.0
2016-05-25T17:35:20.943Z
Does that mean that the geometry term cancels the cosine term ?
Livetrack
CC BY-SA 3.0
2016-05-25T17:45:59.950Z
No. The geometry term is a normalization factor that accounts for the fact that the microfacets will shadow and mask each other. The 'visibility' term I mention in answer is the integral itself. The integral adds up all *visible* incoming light.
RichieSams
CC BY-SA 3.0
2016-05-25T20:06:31.837Z
However, in the book Real Time Rendering I read that for the Blinn-Phong model, the geometry term is (n.v)(n.l) which cancels the denominator.
Livetrack
CC BY-SA 3.0
2016-05-25T21:54:58.507Z
@Livetrack: The part (n.v)(n.l) is not usually called "geometry factor", that is the G in the formula. The only part which gets cancelled when this BRDF is placed into the rendering equation is (n.l).
ivokabel
CC BY-SA 3.0
2016-05-27T21:05:33.693Z
I don't understand how the integral (which is about incoming lights) can cancel the cosine term.
Livetrack
CC BY-SA 3.0
2016-05-25T17:08:37.117Z
2016-05-25T17:08:37.117Z
RichieSams
<p>Don't forget that at the end this is to be integrated in some cone (e.g. pixel footprint).
Then the visible cross section of differential surface dN is also be $(N\cdot V)$.</p>

CC BY-SA 3.0
2016-05-25T16:28:13.513Z
I don't understand, can you be more precise ?
Livetrack
CC BY-SA 3.0
2016-05-26T15:54:02.783Z
The other answer state the same differently in its last paragraph :-)
Fabrice NEYRET
CC BY-SA 3.0
2016-05-27T21:02:36.193Z
I don't understand : Imagine that I have a single point source, then I can simplify the equation like this : $$ L = f(\omega_o, \omega_i) E(\omega_i) $$. Why don't I need to bother about the cosine term ?  PS : J'ai vu que vous êtes chercheur à l'Inria. Je ne veux pas trop vous déranger mais vous pourriez faire l'explication en français ? Merci.
Livetrack
CC BY-SA 3.0
2017-10-13T09:51:21.800Z
You have to bother about the cosine Term. The thing with $E(\omega_i)$ is that it is defined as $E = \frac{\Phi}{A}$ and $A$ is in this case orthogonal to the light direction, i.e. $A$ is projected from the original surface onto a plane orthogonal to the light direction.

In short, you can't ignore $cos$, but in the equation it is implicitly handled.
Tare
CC BY-SA 3.0
2016-05-25T16:05:41.587Z
2016-05-25T16:05:41.587Z
Fabrice NEYRET
<p>I was reading a paper on BRDF. I've come across this formula :
$$ f(\omega_i, \omega_o ) = \frac{FDG}{4(N.V)(N.L)}$$ </p>

<p>The (N.L) term can be cancelled by the cosine term which appears in the rendering equation :</p>

<p>$$ L_o = \int f(\omega_i, \omega_o) L_i cos(\theta) d\omega_i $$</p>

<p>What about the (N.V) term ? What happens if (N.V) = 0 ?</p>

<raytracing><color><brdf><physics>
What is the effect of the BRDF denominator?
Livetrack
# What is the effect of the BRDF denominator?

(Asked by: username_0 on 2016-05-25)

I was reading a paper on BRDF. I've come across this formula :
$$ f(\omega\_i, \omega\_o ) = \frac{FDG}{4(N.V)(N.L)}$$

The (N.L) term can be cancelled by the cosine term which appears in the rendering equation :

$$ L\_o = \int f(\omega\_i, \omega\_o) L\_i cos(\theta) d\omega\_i $$

What about the (N.V) term ? What happens if (N.V) = 0 ?

**Tags:** raytracing, color, brdf, physics


---

## 2 answers

### Answer by username_1 on 2016-05-25. Score: 4

Firstly, I highly suggest reading Eric Heitz's paper "[Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs](https://hal.inria.fr/hal-00942452v2/document)", which covers the full derivation of microfacet-based BRDFs.

The $\frac{1}{4(N \cdot V)(N \cdot L)}$ term is a side effect of the derivation of the BRDF for specular microfacets. Specifically, it comes from the Jacobian of the reflection transformation. See the paper and/or [Walter et. al's 2007 paper](https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf) for more details.

As for your concern for a divide by zero, the definition of the rendering equation prevents it. Let me explain:

For $(N \cdot V)$ to equal zero, they must be orthogonal. In this case, the visibility term of the rendering equation will cull the cases at / below the horizon.

> **Comments:**
> **username_0**: Does that mean that the geometry term cancels the cosine term ?  
> **username_1**: No. The geometry term is a normalization factor that accounts for the fact that the microfacets will shadow and mask each other. The 'visibility' term I mention in answer is the integral itself. The integral adds up all *visible* incoming light.  
> **username_0**: However, in the book Real Time Rendering I read that for the Blinn-Phong model, the geometry term is (n.v)(n.l) which cancels the denominator.  
> **username_2**: @username_0: The part (n.v)(n.l) is not usually called "geometry factor", that is the G in the formula. The only part which gets cancelled when this BRDF is placed into the rendering equation is (n.l).  
> **username_0**: I don't understand how the integral (which is about incoming lights) can cancel the cosine term.  

---

### Answer by username_3 on 2016-05-25. Score: 0

Don't forget that at the end this is to be integrated in some cone (e.g. pixel footprint).
Then the visible cross section of differential surface dN is also be $(N\cdot V)$.

> **Comments:**
> **username_0**: I don't understand, can you be more precise ?  
> **username_3**: The other answer state the same differently in its last paragraph :-)  
> **username_0**: I don't understand : Imagine that I have a single point source, then I can simplify the equation like this : $$ L = f(\omega_o, \omega_i) E(\omega_i) $$. Why don't I need to bother about the cosine term ?  PS : J'ai vu que vous êtes chercheur à l'Inria. Je ne veux pas trop vous déranger mais vous pourriez faire l'explication en français ? Merci.  
> **username_4**: You have to bother about the cosine Term. The thing with $E(\omega_i)$ is that it is defined as $E = \frac{\Phi}{A}$ and $A$ is in this case orthogonal to the light direction, i.e. $A$ is projected from the original surface onto a plane orthogonal to the light direction.  In short, you can't ignore $cos$, but in the equation it is implicitly handled.  

---

