5

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 ?

Livetrack
  • 169
  • 4

2 Answers2

4

Firstly, I highly suggest reading Eric Heitz's paper "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs", 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 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.

RichieSams
  • 3,782
  • 25
  • 35
  • Does that mean that the geometry term cancels the cosine term ? – Livetrack May 25 '16 at 17:35
  • 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 May 25 '16 at 17:45
  • 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 May 25 '16 at 20:06
  • 1
    @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 May 25 '16 at 21:54
  • I don't understand how the integral (which is about incoming lights) can cancel the cosine term. – Livetrack May 27 '16 at 21:05
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)$.

Fabrice NEYRET
  • 1,266
  • 8
  • 14
  • I don't understand, can you be more precise ? – Livetrack May 25 '16 at 16:28
  • The other answer state the same differently in its last paragraph :-) – Fabrice NEYRET May 26 '16 at 15:54
  • 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 May 27 '16 at 21:02
  • 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 Oct 13 '17 at 09:51